当前位置: 首页 > 知识库问答 >
问题:

如何获取配置单元jdbc连接的纱应用程序Id?

桂高昂
2023-03-14

下面是如何通过配置单元jdbc运行查询的

Class.forName(DRIVER);
Connection = DriverManager.getConnection(CONNECTION_URL, USERNAME, PASSWORD);
Response = Connection.createStatement();
ResultSet = Response.executeQuery(query);

我可以在yarn UI中看到应用程序的详细信息。但是现在我想通过java代码获取这个工作的应用程序id,有没有可能这样做呢?如果是,那又是怎样做的呢?

共有1个答案

贺懿轩
2023-03-14

简单的答案是:在旧版本的Hive中没有;可能是最近的版本,它允许您检索一些日志,其中可能包含纱ID。

从配置单元0.14开始,您可以设置HiveServer2来发布当前语句的执行日志;在您的客户机代码中,您可以使用特定于配置单元的API来获取这些日志(就像Beeline client那样异步获取,或者在执行结束时只获取一次)。

引用配置单元文档

从配置单元0.14.0开始,HiveServer2操作日志可用于Beeline客户端。 这些参数配置日志记录:

Hive.Server2.Logging.Operation.Enabled
Hive.Server2.Logging.Operation.Log.Location
Hive.Server2.Logging.Operation.Verbose(配置单元0.14到1.1)
Hive.Server2.Logging.Operation.Level ;(配置单元1.2以后)

Hive 2.0将queryIdsessionId日志记录功能添加到HiveServer2日志文件(...)

HiveStatement的源代码显示了几个非JDBC方法,如GetQueryLogHasMoreLogs--还有用于配置单元2+的GetYarnatsGuid和用于配置单元3+的其他东西。
这里是指向GitHub上的“master”分支的链接,可以切换到您正在使用的任何版本(可能是旧的1.2版本,以便与Spark兼容)。

关于如何点击“logs”方法的虚拟演示,请看一段SO post。

 类似资料:
  • 下面是如何通过配置单元JDBC运行查询的 从纱线URL,找不到应用程序ID。

  • 我在我的java应用程序中使用hive JDBC1.0来创建与hive服务器的连接并执行查询。我想从java代码中设置空闲配置单元连接超时。就像say一样,用户首先创建配置单元连接,如果配置单元连接在接下来的10分钟内保持空闲,那么该连接对象将过期。如果用户在10分钟后使用相同的连接对象执行查询,那么配置单元jdbc将抛出错误。你能告诉我通过java代码实现这一点的方法吗。 我知道配置单元中有一个

  • 我试图在Hive0.14中执行HiveACID事务属性,比如通过Java插入、删除和更新。我能够设置所需的ACID事务属性。还可以创建具有事务属性的表。但它失败了。下面是示例代码: 尝试插入时获得以下异常: 线程“main”java中出现异常。sql。SQLException:处理语句时出错:失败:执行错误,从组织返回代码1。阿帕奇。hadoop。蜂箱ql.exec。org的MapRedTask先

  • 我试图为我的本地配置单元服务器实例(thrift)创建一个连接和getMataData()。 以下是我正在尝试的代码: 线程“main”java.lang.noClassDefFounderror:org/apache/hadoop/hive/metaexception在org.apache.hadoop.hive.jdbc.hivedriver.connect(Hivedriver.java:1

  • 我正在尝试使用hive jdbc uber jar并配置jdbc接收器连接器。 但是连接器抛出错误: 配置 驱动程序位于路径中:/usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib 我已经重新启动连接器,但同样的错误。我认为驱动程序类名必须在某些属性中设置。 知道吗?