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

RDD to HDFS - authentication error - RetryInvocationHandler

我有一个要写入 HDFS 的 RDD。

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

这个returns: 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,它已通过正确的身份验证。

我该如何解决这个问题?

嗯,

您需要检查您的路径 /etc/security/keytabs 并检查您的 spark keytab 是否存在。

此路径是 Kerberos 配置的推荐路径。也许它可以在其他路径上。

但最重要的是,这个keytab应该在同一个路径下的所有worker机器中。

您可以检查的另一件事是应该安装在以下位置的 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

该问题实际上与您在使用 kerberos 时如何 reference HDFS 中的文件有关。

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

webhdfs://<HOST>:<HTTP_PORT>