問題タブ [keytab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - YARN へのスパーク送信のために、Windows Server でキータブ ファイルのパスを設定する方法
私は長い間この問題に苦しんでおり、必死に助けを求めています。
環境
spark-submit
YARn リソース マネージャーに提出するファット 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 に多少依存していると推測できます
python - キータブを使用して Impala に接続するにはどうすればよいですか?
通常のユーザーとパスワードの組み合わせの代わりにキータブを使用してPythonスクリプトを介してimpalaデータベースへの接続を確立しようとしていますが、オンラインでチュートリアルをまったく見つけることができません。現在使用しているコードは次のとおりです。
ただし、パスワードの代わりに keytab を使用して接続したいと考えています。
ldap - Kerberos Keytab と kinit キャッシュを使用して認証できない
キータブを使用しており、Windows コマンドラインで kinit コマンドを使用して設定しています。「新しいチケットはキャッシュ ファイルに保存されています」というメッセージが表示されます。その後、Java アプリケーションを実行してキーのキータブ ファイルにアクセスすると、以下のエラーが発生します。
LDAP を使用して Active Directory に接続しようとしています。以下は構成設定です。
デバッグは true storeKey true useTicketCache true useKeyTab true doNotPrompt true ticketCache は null isInitiator true KeyTab は
C:\Users\cXXXXXX\Git\abcd.keytab refreshKrb5Config が false プリンシパルが xxxx_dev@xxxx.xxxxxx.COM である tryFirstPass が false useFirstPass が false storePass が false clearPass が false キャッシュから TGT を取得する
KinitOptions キャッシュ名は C:\Users\cXXXXXX\krb5cc_cXXXXXX DEBUG クライアント プリンシパルは xxxx_dev@xxxx.xxxxxx.COM DEBUG サーバー プリンシパルは krbtgt/xxxx.xxxxxx.COM@Txxxx.xxxxxx.COM DEBUG キー タイプ: 23 DEBUG 認証時間: 月Jul 01 14:20:21 EDT 2019 DEBUG 開始時刻: Mon Jul 01 14:20:21 EDT 2019 DEBUG end time: Tue Jul 02 00:20:21 EDT 2019 DEBUG renew_till time: null CCacheStreamInput: readFlags() INITIAL; PRE_AUTH; ホスト アドレスは /xx.xx.xxx.xx です。ホスト アドレスは /xxx:0:0:0:xxxx:xxxx:xxxx:xxxx です。Java 構成名: null ネイティブ構成名: C:\windows\krb5.ini LSA から取得した TGT: 資格情報: client=sxxxx_dev@xxxx.xxxxxx.COM server=krbtgt/Txxxx.xxxxxx.
kinit キャッシュ ファイルを追加する前に、少なくともアカウントを検証できましたが、GSSapi のセキュリティに問題がありました。キャッシュを追加したことを解決しようとすると、この新しい問題が発生し始めました
上に添付