JDBC连接hive时,需要首先启动hive,然后再启动hiveserver2,hive --service hiveserver2 &表示hive在后台运行。
错误1:
java.lang.ClassNotFoundException: org.apache.hadoop.hive.jdbc.HiveDriver
hiveserver2和hiveserver1的连接方式不同,有两处需要修改的,之前我的代码在易百教程上看的,这个教程的连接方式还是hiveserver1的,需要两处地方改正:
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
Connection conn = DriverManager.getConnection("jdbc:hive2://xxx:10000/default", "zh", "");
错误 2:
Cannot connect to hive, user root cannot impersonate anonymous
这个主要是hive的授权问题,在这个地方改正即可:
#方法1:这个在core-site.xml;注意我的下面的属性是我的ubuntu主机名,但是有的人是root,请注意
<property>
<name>hadoop.proxyuser.你的linux主机名.hosts</name>
<value>*</v