• presto 安装与简单使用


    官网文档0.2.37:https://prestodb.io/docs/current/

    手动安装:参考原文:https://blog.csdn.net/liyaya0201/article/details/102700306

    docker 版: 参考:https://hub.docker.com/r/starburstdata/presto/

    if connect hive . need  config:

    vim hive-site.xml

    add:

    <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
    </property>
    <property>
      <name>datanucleus.schema.autoCreateAll</name>
      <value>true</value>
    </property>
    <property>
      <name>hive.metastore.uris</name>
      <value>thrift://hadoop001:9083</value>
    </property>

    启动Hive Metastore :

    nohup bin/hive --service metastore >/dev/null 2>&1 &

     idea连接 presto 操作:

    package com.ruozedata.bigdata.spark.sql01
    import java.sql.DriverManager
    
    object PrestoApp {
    
      def main(args: Array[String]): Unit = {
    
        Class.forName("com.facebook.presto.jdbc.PrestoDriver")
        val connection = DriverManager.getConnection("jdbc:presto://spark000:8080/catalog","root",null)
        val stmt = connection.createStatement()
        val sql = "select e.empno, e.ename, e.deptno, d.dname from hive.wuji_spark.emp e join mysql.wuji_spark.dept d on e.deptno = d.deptno"
        val resultSet = stmt.executeQuery(sql)
    
        while (resultSet.next()){
          val empno = resultSet.getInt("empno")
          val ename = resultSet.getString("ename")
          val deptno = resultSet.getString("deptno")
          val dname = resultSet.getString("dname")
          println(empno + "	" + ename + "	" + deptno + "	" + dname)
        }
        resultSet.close()
        stmt.close()
        connection.close()
    
      }
    
    }
    
    原文链接:https://blog.csdn.net/liyaya0201/java/article/details/102700306

    依赖:

      <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.62</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.6</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.8.1</version>
            </dependency>
    
    
    
            <dependency>
                <groupId>com.facebook.presto</groupId>
                <artifactId>presto-jdbc</artifactId>
                <version>0.234.1</version>
            </dependency>

    改进:

    public static void main(String[] args) throws SQLException, ClassNotFoundException {
            Class.forName("com.facebook.presto.jdbc.PrestoDriver");
            Connection connection = DriverManager.getConnection("jdbc:presto://192.168.18.129:8881/mongodb/swift","hadoop",null);  ;
            Statement stmt = connection.createStatement();
            String sql="show tables";
            sql="select * from mongodb.swift.booking ";
            JSONArray array = new JSONArray();
            ResultSet rs = stmt.executeQuery(sql);
            ResultSetMetaData metaData = rs.getMetaData();
            int columnCount = metaData.getColumnCount();
            // 遍历ResultSet中的每条数据
            while (rs.next())
            {
                JSONObject jsonObj = new JSONObject();
                // 遍历每一列
                for (int i = 1; i <= columnCount; i++) {
                    String columnName = metaData.getColumnLabel(i);
                    String value = StringUtils.isBlank(rs.getString(columnName)) ? "" : rs.getString(columnName);
                    jsonObj.put(columnName, value);
                }
                array.add(jsonObj);
            }
    
            System.err.println(array);
            rs.close();
            connection.close();
    
        }
  • 相关阅读:
    POCO库——Foundation组件之日期时间DateTime
    POCO库——Foundation组件之加解密Crypt
    POCO库——Foundation组件之缓存Cache
    POCO库——Foundation组件之核心Core
    POCO库——Foundation组件概述
    HP-SOCKET TCP/UDP通信框架库解析
    Notepad++ 使用nppexec插件配置简易开发环境
    Duilib源码分析(五)UI布局—Layout与各子控件
    Breakpad Google的crash捕获、抓取开源库
    Pugixml一种快速解析XML文件的开源解析库
  • 原文地址:https://www.cnblogs.com/lshan/p/13168937.html
Copyright © 2020-2023  润新知