随笔 - 836  文章 - 1 评论 - 40 阅读 - 102万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

官网文档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 + "\t" + ename + "\t" + deptno + "\t" + 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();

    }
复制代码

 

posted on   lshan  阅读(1485)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2018-06-20 Sonar及其eclipse插件的安装 详细 http://www.importnew.com/10017.html
2018-06-20 sonar link 的安装与使用
2018-06-20 SonarLint(Sonar) 代码质量管理
2018-06-20 Basic64 编码解码
2018-06-20 字符串转码 将文本转为PDF
点击右上角即可分享
微信分享提示