【发布时间】:2017-05-09 08:44:28
【问题描述】:
我使用Spark 1.6.0 通过 API DataFrame.read.parquet($path) 访问启用 Kerberos 的 HDFS 上的数据。
我的应用程序在客户端模式下部署为 spark on yarn。 默认情况下,Kerberos 票证每 24 小时到期一次。前 24 小时一切正常,但在 24 小时(或更长时间,例如 27 小时)后无法读取文件。
我尝试了几种登录和续订票的方法,都不起作用。
- 在
spark-defaults.conf中设置spark.yarn.keytab和spark.yarn.principal - 在
spark-submit命令行中设置--keytab和--principal - 在代码中启动一个计时器,每 2 小时调用一次
UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab()。
错误详情如下:
WARN [org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:671)] - Couldn't setup connection for adam/cluster1@DEV.COM to cdh01/192.168.1.51:8032
DEBUG [org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1632)] - PrivilegedActionException as:adam/cluster1@DEV.COM (auth:KERBEROS) cause:java.io.IOException: Couldn't setup connection for adam/cluster1@DEV.COMto cdh01/192.168.1.51:8032
ERROR [org.apache.spark.Logging$class.logError(Logging.scala:95)] - Failed to contact YARN for application application_1490607689611_0002.
java.io.IOException: Failed on local exception: java.io.IOException: Couldn't setup connection for adam/cluster1@DEV.COM to cdh01/192.168.1.51:8032; Host Details : local host is: "cdh05/192.168.1.41"; destination host is: "cdh01":8032;
【问题讨论】:
-
如何启动您的 Spark 应用程序?与火花提交?乌兹?
-
使用 spark-submit --master yarn --deploy-mode client --principal xxx --keytab xxx 提交 Spark 应用程序
-
也许这个链接可以提供帮助:community.hortonworks.com/questions/35261/…
-
我已查看此链接,该解决方案与我的解决方案 2 一样。从文档和我们的测试来看,它适用于 Yarn 集群模式的 Spark,而不是客户端模式。请参阅此处的链接:cloudera.com/documentation/enterprise/5-8-x/topics/…
标签: apache-spark hadoop-yarn kerberos