下面是如何通过配置单元jdbc运行查询的
Class.forName(DRIVER);
Connection = DriverManager.getConnection(CONNECTION_URL, USERNAME, PASSWORD);
Response = Connection.createStatement();
ResultSet = Response.executeQuery(query);
我可以在yarn UI中看到应用程序的详细信息。但是现在我想通过java代码获取这个工作的应用程序id,有没有可能这样做呢?如果是,那又是怎样做的呢?
简单的答案是:在旧版本的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将queryId
和sessionId
日志记录功能添加到HiveServer2日志文件(...)
HiveStatement
的源代码显示了几个非JDBC方法,如GetQueryLog
和HasMoreLogs
--还有用于配置单元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 我已经重新启动连接器,但同样的错误。我认为驱动程序类名必须在某些属性中设置。 知道吗?