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

场景:远程登录配有Kerberoshbase的时候,client端用到的kerberosprincipalclient/[email protected]

错误:

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

解决方法:

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

    hadoop.proxyuser. client.hosts

    *

    hadoop.proxyuser. client.groups

    *

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

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

 

 hadoop.security.authentication

  kerberos

 

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

hbase shell中登录远程的hbase数据库时,必须把hadoopkerberos配置放在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文件

你可能感兴趣的:(大数据,hadoop,认证,HBase)