java 查询hive 无法获取日志 (hive CDH5.12.1 )
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)
[]
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)
[]
...全文
相关推荐
基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优
CDH6针对hive on spark的调优文档,这个是生产的实战经验
CDH5在线安装包
CDH5在线安装包
CDH550@hive 使用及操作说明
cdh5.5.0下的hive的使用和操作介绍。hive作为数据SQL解析引擎,分析、处理数据;Hadoop提供的分布式文件系统(HDFS)作为数据文件的存储介质;Zookeeper作为分布式协调服务器存在,用于管理集群中各节点状态
hbase-1.2.0-cdh5.12.0.tar.gz
hbase-1.2.0-cdh5.12.0.tar.gz hbase-1.2.0-cdh5.12.0.tar.gz hbase-1.2.0-cdh5.12.0.tar.gz
CDH5.1手工安装文档
CDH5.1手工安装文档


