java 查询hive 无法获取日志 (hive CDH5.12.1 )

五哥 五哥 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
package com.cai.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.List;

import org.apache.hive.jdbc.HiveStatement;

import com.google.common.collect.Lists;

public class HiveJdbcQueryLog {

public static void main(String[] args) throws Exception {
Class.forName("org.apache.hive.jdbc.HiveDriver");
Connection connection = DriverManager.getConnection(
"jdbc:hive2://121.7.35.60:10000/;auth=noSasl", "caidm", "");
HiveStatement stmt = (HiveStatement) connection.createStatement();

String sql = "select count(*) from wzw";

try {
Thread logThread = new Thread(new LogTask(stmt));
logThread.setDaemon(true);
logThread.start();
boolean hasResult = stmt.execute(sql);
logThread.interrupt();
if (hasResult) {
ResultSet resultSet = stmt.getResultSet();
ResultSetMetaData metaData = resultSet.getMetaData();
int colCount = metaData.getColumnCount();
List<String> res = Lists.newArrayList();
while (resultSet.next()) {
List<String> row = Lists.newArrayList();
for (int i = 1; i <= colCount; i++) {
row.add(resultSet.getString(i));
}
res.addAll(row);
}
System.out.println(res);
//System.out.println(JSON.toJSONString(res));
} else {
stmt.getUpdateCount();
}
} catch (Exception ex) {
ex.printStackTrace();
}finally {
stmt.close();
connection.close();
}
}

public static class LogTask implements Runnable {
private HiveStatement stmt;
public LogTask(HiveStatement stmt) {
this.stmt = stmt;
}

public void run() {
try {
while (stmt.hasMoreLogs()) {
try {
for (String line : stmt.getQueryLog(false, 1000)) {
System.out.println(line);
}
Thread.sleep(200);
} catch (SQLException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}



异常错误:
18/07/12 11:10:46 INFO jdbc.Utils: Supplied authorities: 10.17.35.60:10000
18/07/12 11:10:46 INFO jdbc.Utils: Resolved authority: 10.17.35.60:10000
org.apache.hive.service.cli.HiveSQLException: Expected state FINISHED, but found RUNNING
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:241)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:227)
at org.apache.hive.jdbc.HiveStatement.getQueryLog(HiveStatement.java:817)
at com.cai.test.HiveJdbcQueryLog$LogTask.run(HiveJdbcQueryLog.java:65)
at java.lang.Thread.run(Thread.java:745)
org.apache.hive.service.cli.HiveSQLException: Expected state FINISHED, but found RUNNING
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:241)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:227)
at org.apache.hive.jdbc.HiveStatement.getQueryLog(HiveStatement.java:817)
at com.cai.test.HiveJdbcQueryLog$LogTask.run(HiveJdbcQueryLog.java:65)
at java.lang.Thread.run(Thread.java:745)
org.apache.hive.service.cli.HiveSQLException: Expected state FINISHED, but found RUNNING
at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:241)
at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:227)
at org.apache.hive.jdbc.HiveStatement.getQueryLog(HiveStatement.java:817)
at com.cai.test.HiveJdbcQueryLog$LogTask.run(HiveJdbcQueryLog.java:65)
at java.lang.Thread.run(Thread.java:745)
0
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at com.cai.test.HiveJdbcQueryLog$LogTask.run(HiveJdbcQueryLog.java:68)
at java.lang.Thread.run(Thread.java:745)
[]
...全文
评论 1
收藏 已收藏
分享
返回顶部
五哥
Hadoop生态社区 20,842 成员 4,695 内容