Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
impala [CDP7.1.7]impala-shell수행시 간헐적으로 "-k requires a valid kerberos ticket but no valid kerberos ticket found." 오류
impala-shell을 포함한 shellscript 프로그램이 정상적으로 잘 수행되다가 가끔 "-k requires a valid kerberos ticket but no valid kerberos ticket found."와 같은 오류가 발생하면서 impala-shell수행이 실패하는 경우가 있다. (테스트를 위해서 kinit직후 kdestroy를 수행하고 이어서 impala-shell을 수행하면 동일한 메세지가 발생한다)
shellscript파일에는 최상단에 kinit을 수행하고 impala-shell을 여러번 수행하는 구조로 되어 있는데 kinit직후의 첫번째 impala-shell이 아래의 오류가 발생하면서 실패하고 나머지는 정상 수행된다.
impala_shell.py은 내부에서 kerberos인증의 경우 "klist -s"명령으로 테스트를 수행하는데 kinit직후에 수행되는 "klist -s"명령이 유효 기간을 제대로 인식하지 못하는 경우가 발생하는거 같다.
그래서 다음과 같이 kinit후에 "klist -s"를 수행해서 실패시 10초간 대기 하도록 하는 로직을 추가해 줄 필요가 있다.
kinit -k -t /var/lib/keytab/gooper.keytab gooper
if ! klist -s
then
echo "'klist -s' test fail"
sleep 10
else
echo "'klist -s' test succeed"
fi
* 오류 메세지 유형
1.
Error connecting: TTransportException, Could not start SASL: Error in sasl_client_start (-1) SASL(-1):
generic failure: GSSAPI Error: Unspecified GSS failure.
Minor code may provide more information (Matching credential not found (filename: /tmp/krb5cc_1398802835))
2.
Starting Impala Shell using Kerberos authentication
Using service name 'impala'
-k requires a valid kerberos ticket but no valid kerberos ticket found.
3.
Error connecting: TTransportException, Could not start SASL: Error in sasl_client_start (-1) SASL(-1):
generic failure: GSSAPI Error: Unspecified GSS failure.
Minor code may provide more information (No Kerberos credentials available: Bad format in credentials cache (filename: /tmp/krb5cc_1398802835))
Not connected to Impala, could not execute queries.