您的位置:首页 > 运维架构 > Apache

hbase错误:Org.apache.hadoop.ipc.RemoteException:User:client is not allowed to impersonate root

2016-07-29 10:57 423 查看
场景:远程登录配有Kerberos的hbase的时候,client端用到的kerberos的principal是client/mj1@BDSM.CMCC

错误:

Org.apache.hadoop.ipc.RemoteException:User:clientis not allowed to impersonate root;

解决方法:

在hadoop的配置文件core-site.xml中配置如下内容:

<property>

<name>hadoop.proxyuser. client.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser. client.groups</name>

<value>*</value>

</property>

上述错误的根本解决办法:

在client端的配置目录里添加core-site.xml文件,内容如下:

<configuration>

<property>

<name>hadoop.security.authentication</name>

<value>kerberos</value>

</property>

</configuration>

即可,就不需要在生产环境的hadoop的core-site.xml中添加任何配置了。如果client端没有该配置文件,则在hbase用户远程访问hdfs文件系统的时候,因为没有读到hadoop的认证方式为kerberos,而成了代理proxy模式,即日志里记载的是AUTH=PROXY,而非KERBEROS,所以认证不通过,显示client不能伪装为root用户。

在hbase shell中登录远程的hbase数据库时,必须把hadoop的kerberos配置放在core-site.xml中才可以,放在hbase-site.xml中是不认的,所以需要在指定的登录配置目录下放一个core-site.xml文件添加该配置项。但是在java程序中,把该配置项添加到hbase-site.xml中就可以,不需要单独的core-site.xml配置文件。

在终端的hbase shell远程登录hbase命令:HBASE_CONF_DIR="/opt/hbase-1.2.1/back_conf/"/opt/hbase-1.2.1/bin/hbase shell

其中的HBASE_CONF_DIR就是指定的配置目录,该目录下目前放了hbase-site.xml和core-site.xml以及需要的keytab文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐