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>
我有一个要写入 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>