私はSpark 1.6.0
を使用して、API DataFrame.read.parquet($path)
によってKerberos対応HDFS上のデータにアクセスしていました。スパークヤーンクライアントモードでKerberosチケットを更新する方法は?
私のアプリケーションは、クライアントモードのspark on yarnとしてデプロイされています。 デフォルトでは、Kerberosチケットは24時間ごとに有効期限が切れます。最初の24時間はすべて正常に動作しますが、24時間後(またはそれ以上、27時間など)にファイルを読み込めません。
私はログインしてチケットを更新するいくつかの方法を試しましたが動作しません。
- コマンドライン
- スタートで
spark-defaults.conf
- 設定し
--keytab
と--principal
にspark.yarn.keytab
とspark.yarn.principal
を設定するコードでタイマーがUserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab()
2時間ごとに呼び出します。
エラーの詳細は以下のとおりです。
WARN [org.apache.hadoop.ipc.Client$Connection$1.run(Client.java:671)] - Couldn't setup connection for adam/[email protected] to cdh01/192.168.1.51:8032
DEBUG [org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1632)] - PrivilegedActionException as:adam/[email protected] (auth:KERBEROS) cause:java.io.IOException: Couldn't setup connection for adam/[email protected] 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/[email protected] 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-spool-submitを使用してSparkアプリを送信する--deploy-mode client --principal xxx --keytab xxx – Adam
このリンクが役立つかもしれない:https://community.hortonworks.com/questions/35261/what-is -correct-strategy-for-spark-streaming-kerbe.html –