Hive-beeline连接报错:root is not allowed to impersonate root (state=08S01,code=0)

问题描述

使用hive/bin目录下的hive启动客户端,使用!connect jdbc:hive2://hadoop01:10000连接Hive数据仓库时提示输入用户名和密码,输入数据库的用户名和密码报错:

Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop01:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate root (state=08S01,code=0)

解决方法

(1)修改hadoop 配置文件 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>

说明: hadoop.proxyuser.root.hosts配置项名称中root部分为报错User:* 中的用户名部分,根据需要修改

例如: hadoop is not allowed to impersonate anonymous则需要将xml变更为如下格式:

    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>

每个节点都要改


(2)重启Hadoop

cd  hadoop/sbin
stop-all.sh
start-all.sh 

 

(3)再次使用hive连接

 此时直接回车就可以登录。

 

posted @ 2024-02-01 16:32  业余砖家  阅读(1992)  评论(0)    收藏  举报