版权声明:转载请注明出处!谢谢。 https://blog.csdn.net/weixin_44634893/article/details/89198799
Caused by: java .lang.RuntimeException:
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
User: hadoop is not allowed to impersonate hive
原因:hive不允许匿名用户访问
解决:修改HADOOP_HOME% etc/hadoop/core-site.xml文件,增加
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
注意:这里的两个属性的name中的root应改为你的报错信息中usr:* 中的 *,例如我的就改为hadoop.proxyuser.hadoop.hosts和hadoop.proxyuser.hadoop.groups
重启hadoop
问题应该能解决。
通过JDBC对hive操作还遇到代码跑到
conn = DriverManager.getConnection(
"jdbc:hive2://127.0.0.1:10000/jobanalyze", "hive", "hive");
时就停住了(或者说一直在跑)
原因:hive的远程服务接口没启动或者启动不成功
解决:在HIVE_HOME% conf/hive-site.xml中加入
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>192.168.239.139</value> <!-- 默认是localhost,但我手动改成了本机的ip地址,很可能就是我改了这个才起作用的 -->
</property>
启动hive的远程服务接口(之前如果启动了要先关闭)
hive --service hiveserver2
查看10000端口号的使用
sudo netstat -lanp | grep 10000
问题解决。