gpt4 book ai didi

java - hive jdbc client 和 hive metastore java api 有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 14:14:52 26 4
gpt4 key购买 nike

我使用的是 hive jdbc,但之后我才知道有 hive metastore java api ( here ),您可以通过它再次连接到 hive 并操作 hive 数据库。

但是我想知道这两种方式到底有什么区别。

很抱歉,如果有任何明显的问题,我们将不胜感激。

最佳答案

据我所知,有两种方法可以连接到 Hive

  1. 使用 hive metastore 服务器,然后在后台连接到关系数据库,例如 mysql 以显示模式。这通常在端口 9083 上运行。
  2. hive jdbc server,称为HiveServer2,运行在10001端口,一般...

现在,在早期版本的hive 中,hiveserver2 曾经不太稳定,实际上它的多线程支持也很有限。我想,那个领域的情况可能有所改善。

所以对于 JDBC api - 是的,它可以让您使用 JDBC 和 sql 进行通信。

对于 Metastore 连接,似乎有 2 个特征。

  1. 实际运行 SQL 查询 - DML
  2. 执行 DDL 操作。

DDL-

对于 DDL,Metastore API 派上用场,org.apache.hadoop.hive.metastore.HiveMetaStoreClient HiveMetaStoreClient类可以用于该目的

DML-

我发现在这方面有用的是 org.apache.hadoop.hive.ql.Driver https://hive.apache.org/javadocs/r0.13.1/api/ql/org/apache/hadoop/hive/ql/Driver.html hive.ql.Driver类(class)此类有一个名为 run() 的方法,可让您执行 SQL 语句并取回结果。例如您可以执行以下操作

Driver driver = new Driver(hiveConf);
HiveMetaStoreClient client = new HiveMetaStoreClient(hiveConf);
SessionState.start(new CliSessionState(hiveConf));
driver.run("select * from employee);
// DDL example
client.dropTable(db, table);

关于java - hive jdbc client 和 hive metastore java api 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26055220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com