0

私は長い間この問題に苦しんでおり、必死に助けを求めています。

環境

spark-submitYARn リソース マネージャーに提出するファット jar があります。YARN 認証は、有効なプリンシパルとキータブ ファイルを持っている Kerberos プロトコルによって管理されます。Keytab は以前に有効であることがテストされていました。

YARN リソース マネージャーとクラスター全体は、Linux サーバー上の Cloudera で実行されます。アプリケーションを Windows Server から送信する必要があります。

keytab ファイルを C:\Kerberos\filename に置きました。

Spark が Kerberos チケットを自動的に作成できるようにするために、送信時に keytab とプリンシパルを渡したいと考えています。これらの次の構成をspark-defaults.confファイルに入れることでそれを行っています。

  • spark.yarn.keytab = C:\Kerberos\ファイル名
  • spark.yarn.principal = ユーザー@ドメイン

問題

次の 2 つのことが起こります。

  • 私が説明した状況では、送信が開始されるとログイン成功メッセージが表示されますが、Spark コンテキストが開始されて YARN に移動するまでにが表示され、ルートではなくプレフィックスとしてNo FileSystem for scheme: C解釈されていると思われます。C

  • 試してみるfile:///C/Kerberos/filenameと、すぐにファイルが見つからないという例外が発生します。これは、チェックインSparkSubmit.scala(バージョン 2.2 のソース コードをチェック - 私が使用しているもの) が原因であり、次のような URI では決して機能しません。file:///

キータブファイルのパスを指定するにはどうすればよいですか? これは、サブミッターである Windows Server に多少依存していると推測できます

4

0 に答える 0