zoukankan      html  css  js  c++  java
  • 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();
    
        }
  • 相关阅读:
    Codeforces 1291 Round #616 (Div. 2) B
    总结
    刷新DNS解析缓存+追踪+域名解析命令
    数学--数论--Hdu 5793 A Boring Question (打表+逆元)
    Lucene.net(4.8.0) 学习问题记录六:Lucene 的索引系统和搜索过程分析
    LeetCode 117 Populating Next Right Pointers in Each Node II
    LeetCode 116 Populating Next Right Pointers in Each Node
    test test
    LeetCode 115 Distinct Subsequences
    LeetCode 114. Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/lshan/p/13168937.html
Copyright © 2011-2022 走看看