当我尝试使用hiverserver2启动配置单元时,出现以下错误。
Connecting to jdbc:hive2://localhost:10000
18/10/25 09:45:38 [main]: WARN jdbc.HiveConnection: Failed to connect to localhost:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: deco is not allowed to impersonate anonymous (state=08S01,code=0)
我使用的用户名是deco。
我还在core-site.xml文件中添加了以下条目:
<property>
<name>hadoop.proxyuser.deco.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.deco.groups</name>
<value>*</value>
</property>
我仍然无法用直线连接。我使用了以下命令:
$HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000
和
$HIVE_HOME/bin/beeline -n $(whoami) -u jdbc:hive2://localhost:10000
我甚至备份了metastore\u db文件夹,并使用以下命令重新初始化:
$HIVE_HOME/bin/schematool -dbType derby -initSchema
我甚至在10001端口上启动了hiveserver2,并将beeline连接到10001,但仍然得到了相同的错误
所有这些都证明是徒劳的。
救命我要死了
1条答案
按热度按时间uemypmqf1#
我犯过这个错误吗
不允许用户*模拟匿名
这是因为默认情况下,配置单元尝试以调用用户的身份执行操作,我在配置单元配置文件conf/hive-site.xml中添加以下行,以要求配置单元以hiveserver2进程用户的身份执行操作,然后消除此错误:
文件如下:
冒充
默认情况下,hiveserver2作为提交查询的用户执行查询处理。但是,如果将以下参数设置为false,则查询将作为hiveserver2进程的运行用户运行。
hive.server2.enable.doas–模拟连接的用户,默认为true。