2017-03-29 4 views
3

에 의해 Kerberos 지원 HDFS의 데이터에 액세스하기 위해 Spark 1.6.0을 사용하고있었습니다.스파크 얀 클라이언트 모드에서 Kerberos 티켓을 갱신하는 방법은 무엇입니까?

내 응용 프로그램은 클라이언트 모드의 스파크 온 실 (spark on yarn)으로 배포됩니다. 기본적으로 Kerberos 티켓은 24 시간마다 만료됩니다. 모든 것이 처음 24 시간에는 정상적으로 작동하지만 24 시간 (또는 그 이상, 예를 들면 27 시간) 후에 파일을 읽지 못합니다.

나는 티켓을 갱신하고 갱신하는 몇 가지 방법을 시도했지만 작동하지 않습니다.

  1. spark-submit 명령 줄
  2. 시작에 spark-defaults.conf
  3. 설정 --keytab--principalspark.yarn.keytabspark.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; 
+0

Spark 앱을 어떻게 시작합니까? 스파크 제출? 오지? –

+0

spark-submit - spool-submit-spawn -deploy-mode 클라이언트로 spark 앱 제출 --principal xxx --keytab xxx – Adam

+0

이 링크는 도움이 될 수 있습니다. https://community.hortonworks.com/questions/35261/what-is -correct-strategy-for-spark-streaming-kerbe.html –

답변

1

문제는 해결되었다. 잘못된 버전의 Hadoop 라이브러리가 원인입니다. Spark 1.6 어셈블리 jar에서 이전 버전을 나타냅니다. Hadoop 라이브러리의 빌드가 없기 때문에 Hadoop 라이브러리를 다시 다운로드하고 제 3 자 Hadop 2.8 lib를 참조하십시오. 그러면 작동합니다.