2017-01-12 2 views
3

スパークを含むHDPクラスタをセットアップしました。また、クラスタのKerberosを有効にして、すべてのサービスとユーザーがプリンシパルを介して認証する必要がありました。Kerberized Clusterでのスパークヒストリサーバー認証

これはうまくいくようですが、すべてのサービスが実行されていて、ユーザーは有効なKerberosチケットを取得してからアクセスできます。 YARN ResourceManagerのWeb UI。

enter image description here

しかし、kinitウェブサイトを作った後、ユーザがアクセス可能である:

エルス

彼は、このようなエラーメッセージが取得します。

私が今やりたいことは(私はすでにそうだと思っていました)、そのようなSpark History Server UIも保護して、ユーザーがKerberosチケットで認証する必要があることです。実際に誰もが認証なしでUIにアクセスできます: enter image description here

これはまったく可能ですか?はいの場合、どうすれば設定できますか?

spark.eventLog.dir = hdfs:///spark-historyの実際のアクセス許可は777です。ここでAmbari HDFSビューのスクリーンショット: enter image description here

+0

この質問は興味深いものの、SOフォーマットでは少し広がっているようです。あなたは少し狭めることができますか? –

答えて

1

私はIBM's documentation

にこれに対する解決策を見つけたあなたは、Kerberos/SPNEGO org.apache.hadoop.security.authentication.server.AuthenticationFilterのためのHadoopの桟橋認証フィルタを再利用

あなたがこれを行うことができますSparkのdefault.confに設定してください spark.ui.filters=org.apache.hadoop.security.authentication.server.AuthenticationFilterspark.org.apache.hadoop.security.authentication.server.AuthenticationFilter.params= type=kerberos,kerberos.principal=${spnego_principal_name},kerberos.keytab=${spnego_keytab_path} これらの置換変数に注意してください。これらの値はAmbariでこれらの値を設定しても機能しませんでした。また、他のHadoop SPNEGO構成と同様にcookie.domainsignature.secret.fileを追加することを検討してください。

明らかに、これはスパークヒストリサーバーがそのクラスパスでHadoopクラスを実行している場合にのみ機能します。たとえば、SMACKスタックのためのすぐ使えるソリューションではありません。