如何在火花纱客户端模式下更新Kerberos票?

时间:2017-03-29 07:49:30

标签: apache-spark yarn kerberos

我使用Spark 1.6.0来访问API DataFrame.read.parquet($path)启用Kerberos的HDFS上的数据。

我的应用程序在客户端模式下部署为纱线上的火花。 默认情况下,Kerberos票证每24小时到期一次。一切都在前24小时内正常工作,但在24小时后(或更长时间,如27小时)未能读取文件。

我已经尝试了几种登录和续订机票的方法,但是没有用。

  1. spark.yarn.keytab
  2. 中设置spark.yarn.principalspark-defaults.conf
  3. --keytab命令行
  4. 中设置--principalspark-submit
  5. 在代码中启动计时器,每2小时致电UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab()
  6. 错误详情为:

    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; 
    

1 个答案:

答案 0 :(得分:1)

问题解决了。 它是由错误版本的Hadoop lib引起的。 在Spark 1.6程序集jar中,它引用了旧版本。 Hadoop lib,所以我在没有内置Hadoop lib的情况下再次下载它,并引用了第三方Hadop 2.8 lib。 然后就行了。