Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
Cloudera CDH/CDP [Kerberos]병렬 kinit 호출시 cache파일이 손상되어 Bad format in credentials cache 혹은 No credentials cache found 혹은 Internal credentials cache error 오류 발생시
kinit을 병렬로 호출(Oozie workflow에서 병렬 수행등)시 Kerberos cache파일이 손상되어 Bad format in credentials cache등의 오류 발생 할 수 있다. 이는 kinit과정에서 cache 파일을 새로 만드는데 그 과정중에 cache를 읽는 경우 파일이 손상된것을 읽게 되어 오류가 발생할 수 있다.
이런 경우는 kinit을 다음과 같이 수행해서 문제가 있는 경우 retry할 수 있도록 있도록 프로그램에서 고려해줘야 한다.
예시#1) if ! klist -s; then for i in 1 2 3; do kinit $USER@$REALM -k -t $HOME/$USER.keytab && break || sleep 2; done; fi
예시#2) runCnt=0 impala-shell -i servername.com -B --output_delimiter=',' -o ../$NAME/$NAME.csv -f ../$NAME/001.sql while [ $? -ne 0 ] do runCnt=$(($runCnt + 1)) if [ $runCnt -eq 2 ] then exit 1 else impala-shell -i servername.com -B --output_delimiter=',' -o ../$NAME/$NAME.csv -f ../$NAME/001.sql fi done
* 오류 메세지는 경우에 따라 아래와 같이 다양하게 나타날 수 있다. kinit: Failed to store credentials: Internal credentials cache error (filename: /tmp/krb5cc_1645006342) while getting initial credentials kinit: Failed to store credentials: No credentials cache found (filename: /tmp/krb5cc_1645006342) while getting initial credentials kinit: Failed to store credentials: Bad format in credentials cache (filename: /tmp/krb5cc_1645006342) while getting initial credentials