메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


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
위로