不允许用户模拟匿名(state=08s01,code=0)org.apache.hadoop.security.authorize.authorizationexception

dpiehjr4  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(590)

当我尝试使用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,但仍然得到了相同的错误
所有这些都证明是徒劳的。
救命我要死了

uemypmqf

uemypmqf1#

我犯过这个错误吗
不允许用户*模拟匿名
这是因为默认情况下,配置单元尝试以调用用户的身份执行操作,我在配置单元配置文件conf/hive-site.xml中添加以下行,以要求配置单元以hiveserver2进程用户的身份执行操作,然后消除此错误:

<property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
    <description>
      Setting this property to true will have HiveServer2 execute
      Hive operations as the user making the calls to it.
    </description>
  </property>

文件如下:
冒充
默认情况下,hiveserver2作为提交查询的用户执行查询处理。但是,如果将以下参数设置为false,则查询将作为hiveserver2进程的运行用户运行。
hive.server2.enable.doas–模拟连接的用户,默认为true。

相关问题