RDD到HDFS - 身份验证错误 - RetryInvocationHandler

时间:2016-11-10 18:18:38

标签: hadoop apache-spark kerberos

我有一个RDD,我想写给HDFS。

data.saveAsTextFile("hdfs://path/vertices")

返回: WARN RetryInvocationHandler: Exception while invoking ClientNamenodeProtocolTranslatorPB.getFileInfo over null. Not retrying because try once and fail. org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]

我已经检查了KERBEROS并且已经过适当的身份验证。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

那么,

您需要检查路径/etc/security/keytabs并检查您的火花钥匙标签是否存在。

建议使用此路径进行Kerberos配置。也许它可以在其他路径上。

但最重要的是,此密钥表应该位于同一路径中的所有工作机器中。

您可以检查的其他内容是应该安装在Spark中的Spark的配置文件:

SPARK_HOME/conf

这个文件夹应该有spark conf文件spark-defaults.conf这个conf文件需要有这个东西:

spark.history.kerberos.enabled true
spark.history.kerberos.keytab /etc/security/keytabs/spark.keytab
spark.history.kerberos.principal user@DOMAIN.LOCAL

答案 1 :(得分:0)

问题实际上与使用kerberos时HDFS中文件reference的方式有关。

而不是hdfs://<HOST>:<HTTP_PORT>

webhdfs://<HOST>:<HTTP_PORT>