从安全集群中的HBase读取Spark

时间:2016-10-07 08:36:47

标签: apache-spark hbase yarn kerberos hortonworks-data-platform

我正在尝试在启用Kerberos的YARN群集(Hortonworks)上执行Spark作业。此作业从/向HBase读取和写入数据。 不幸的是,我在身份验证方面存在一些问题(特别是当Spark作业尝试访问HBase数据时) - 并了解身份验证的工作原理。这是我得到的错误:

  

错误yarn.ApplicationMaster:用户类抛出异常:   java.io.IOException:keytab中用户名的登录失败    keytabFile java.io.IOException: username 的登录失败   keytab keytabFile at   org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytabAndReturnUGI(UserGroupInformation.java:1146)

我希望根据(技术)用户的keytab进行身份验证。 因此,我目前有两个地方,我提供了主要和keytab信息:

  1. 在带有--principal和--keytab选项的spark-submit脚本中
  2. 在UserGroupInformation.loginUserFromKeytabAndReturnUGI(principal,keytab)的代码中
  3. 我的问题:

    • 上述两个地方每个提供密钥表的目的是什么?是否只有一个用于对YARN群集进行身份验证以获取资源?或者我是否真的需要为两种不同的身份验证(针对YARN和针对HBase)提供两次principal / keytab信息? Spark如何处理内部所有内容?
    • 我是否需要提供用户名 username @ principal 的主体?这两个地方都一样吗?
    • 我需要将keytab文件分发到同一位置的所有工作节点,对吧? keytab文件必须向哪个用户读取?或者还有一种方法可以通过spark-submit脚本传递它?

    我知道,很多问题...... 感谢您的帮助或任何提示!

    谢谢和问候

0 个答案:

没有答案