Hadoop MapReduce作业可以';t在启用Kerberos的CDH群集上与Hbase对话

Hadoop MapReduce作业可以';t在启用Kerberos的CDH群集上与Hbase对话,hadoop,mapreduce,hbase,kerberos,cloudera-cdh,Hadoop,Mapreduce,Hbase,Kerberos,Cloudera Cdh,我正在编写一个MapReduce应用程序来访问启用Kerberos的CDH集群上的Hbase数据。我的CDH版本是5.9.0,运行在3个节点上,Kerberos版本是1.10.1。现在,我面临一个问题,希望有人能帮助我 我的代码: conf.set("hadoop.security.authentication", "Kerberos"); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFro

我正在编写一个MapReduce应用程序来访问启用Kerberos的CDH集群上的Hbase数据。我的CDH版本是5.9.0,运行在3个节点上,Kerberos版本是1.10.1。现在,我面临一个问题,希望有人能帮助我

我的代码:

conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("jj@example.com", "jj.keytab");

HTable table = new HTable(conf, "myTable");
 Put p = new Put(Bytes.toBytes("myLittleRow"));
 p.add(Bytes.toBytes("myColumnFamily"), Bytes.toBytes("someQualifier"),
         Bytes.toBytes("Some Value"));
 table.put(p);
上面的代码帮助我使用
java-jar
hadoop-jar
本地模式下成功运行。但是,当我尝试通过色调运行Oozie工作流时,会出现以下问题:

FATAL [main] org.apache.hadoop.hbase.ipc.RpcClientImpl: SASL authentication failed. The most likely cause is missing or invalid credentials. Consider 'kinit'. javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
Caused by: GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)
因此,我尝试使用init凭据获取有效令牌,以便通过

TableMapReduceUtil.initCredentialsForCluster(job,conf);

但问题仍然存在。有人知道吗

尽管Oozie文档乱七八糟,但它确实涵盖了HBase Kerberos身份验证:

…某些行动需要与外部服务部门(如HCatalog、, HBase区域服务器、配置单元服务器2)以及在这些情况下的操作 需要在Oozie中进行一些额外配置才能进行身份验证

不幸的是,在那之后,该页面没有可操作的信息。你必须恢复到一个很好的老谷歌搜索,以找到一些有用的帖子,例如:

至于色调UI如何支持该功能。。。老实说,在2014年的几天里,我试用了这个糟糕的软件,然后切换到文本编辑器直接制作XML脚本。色调有太多的限制



否则,您可以在Java代码中使用Hadoop
UserGroupInformation.loginUserFromKeytab()
和一个keytab文件(必须通过Oozie操作中的标准
指令下载),使用显式Kerberos身份验证。在CDH上配置Hue Ozzie作业以与安全的Hbase对话很容易

您需要做的只是:

  • 设置工作流时启用Hbase凭据
  • hbase site.xml
    添加到
    job.xml
    路径

最后,我在色调CDH上找到了一些设置的解决方案。谢谢你的回复,西蒙斯!