如何获取hive-jdbc连接的Yarn应用程序Id



以下是我如何通过配置单元jdbc 运行查询

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

我可以在yarn ui中看到应用程序的详细信息。但现在我想通过java代码获得该作业的应用程序id,有可能吗?如果是,那么怎么做?

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

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

报价单元文档

从配置单元0.14.0开始,提供了配置单元Server2操作日志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(hive 1.2以上版本)

Hive 2.0添加了对将queryIdsessionId记录到HiveServer2日志文件(…)的支持

HiveStatement的源代码显示了几种非JDBC方法,如getQueryLoghasMoreLogs,以及用于单元2+的getYarnATSGuid和用于单元3+的其他方法
这里是链接到";主";在GitHub上的分支,切换到您使用的版本(可能是与Spark兼容的旧1.2版本)

对于关于如何敲击";日志";方法,请查看带有一个代码片段的SO文章。

相关内容

  • 没有找到相关文章

最新更新