java.sql.SQLException: Could not establish connection to jdbc:hive2://localhost:10000: Required field 'serverProtocolVersion' is unset!
测试live连接的时候出现上面的错误。
package com.cn.whr.HiveTestJdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* test
*
*/
public class App
{
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main( String[] args )
{
try {
Class.forName(driverName);
Connection con = null;
con = DriverManager.getConnection("jdbc:hive2://192.168.10.150:10000/myhive", "live", "live");
Statement stmt = con.createStatement();
ResultSet res = null;
String sql = "select * from student";
System.out.println("Running: " + sql);
res = stmt.executeQuery(sql);
System.out.println("ok");
while (res.next()) {
System.out.println(res.getString(1) + "\t" + res.getString(2) + "\t" + res.getString(3) + "\t" + res.getString(4));
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("error");
}
}
}
后来我在hadoop的core-site.xml中加入以下配置后解决:
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>