복붙노트

[HADOOP] Kerberized 클러스터에서의 이력 기록 서버 인증

HADOOP

Kerberized 클러스터에서의 이력 기록 서버 인증

스파크에 속한 HDP 클러스터를 설치했습니다. 또한 클러스터의 Kerberos를 활성화하여 모든 서비스와 사용자가 프린시 펄을 통해 인증해야했습니다.

이것은 제대로 작동하는 것으로 보이며 모든 서비스가 실행 중입니다. 예를 들어 사용자는 유효한 Kerberos 티켓을 가져야 만합니다. YARN ResourceManager의 웹 UI.

다른 사람은 다음과 같은 오류 메시지를받습니다.

그러나 모니터를 만든 후 웹 사이트는 사용자가 액세스 할 수 있습니다.

내가 지금하고 싶은 일은 (내가 이미 생각했다.) 사용자가 Kerberos 티켓을 통해 인증을받을 수 있도록 Spark History Server UI를 보호하는 것이다. 사실 모든 사람들이 인증없이 UI에 액세스 할 수 있습니다.

이 작업을 수행 할 가능성이 있습니까? 그렇다면 어떻게 구성 할 수 있습니까?

spark.eventLog.dir = hdfs : /// spark-history에 대한 실제 사용 권한은 777입니다. 여기 Ambari HDFS보기의 스크린 샷이 있습니다.

해결법

  1. ==============================

    1.IBM의 문서에서 이에 대한 해결책을 찾았습니다.

    IBM의 문서에서 이에 대한 해결책을 찾았습니다.

    Kerberos / SPNEGO 용 Hadoop의 부두 인증 필터를 다시 사용합니다. org.apache.hadoop.security.authentication.server.AuthenticationFilter

    Spark의 default.conf에서 설정하면됩니다. spark.ui.filters = org.apache.hadoop.security.authentication.server.AuthenticationFilter 과 spark.org.apache.hadoop.security.authentication.server.AuthenticationFilter.params = type = kerberos, kerberos.principal = $ {spnego_principal_name}, kerberos.keytab = $ {spnego_keytab_path} 이러한 대체 변수에주의하십시오. Ambari에서 이러한 값을 설정할 때 나에게 도움이되지 않았습니다. 또한 다른 Hadoop SPNEGO 구성과 비슷한 cookie.domain 및 signature.secret.file을 추가하는 것도 고려하십시오.

    분명히 이것은 Spark History Server가 classpath에서 Hadoop-class로 실행될 때만 작동합니다. 따라서 예를 들어 SMACK-stack에 대한 out-of-the-box 솔루션이 아닙니다.

  2. from https://stackoverflow.com/questions/41608019/spark-history-server-authentication-in-kerberized-cluster by cc-by-sa and MIT license