如何获取hive jdbc连接的Yarn应用程序ID?

时间:2015-11-05 06:10:37

标签: jdbc hive yarn

以下是我通过hive jdbc

运行查询的方法
Class.forName(DRIVER);
Connection = DriverManager.getConnection(CONNECTION_URL, USERNAME, PASSWORD);
Response = Connection.createStatement();
ResultSet = Response.executeQuery(query);

我可以在纱线ui中看到应用程序的详细信息。但现在我想通过java代码获取此作业的应用程序ID,是否可以这样做?如果是,那怎么办?

1 个答案:

答案 0 :(得分:1)

AFAIK的简短回答是:不是旧版本的Hive;可能使用最新版本,可以检索一些日志,其中可能包含YARN ID。

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

引用Hive documentation

  

从Hive 0.14.0开始,HiveServer2操作日志可用   为直线客户。这些参数配置日志记录:

     

hive.server2.logging.operation.enabled

     

hive.server2.logging.operation.log.location

     

hive.server2.logging.operation.verbose (Hive 0.14到1.1)

     

hive.server2.logging.operation.level (Hive 1.2以后)

Hive JDBC API文档中,您应该查看方法getQueryLoghasMoreLogs,并使用that post作为教程。