hbase错误:Org.apache.hadoop.ipc.RemoteException:User:client is not allowed to impersonate root详解大数据

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

错误:

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>

即可,就不需要在生产环境的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文件

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/9520.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论