-
[impala-shell]python3에서 SyntaxError 처리 본문
which impala-shell
/usr/bin/impala-shell
impala-shell은 python2에서 작성이 되어있다. 그래서 환경을 python3로 잡으면 아래의 에러를 볼수 있다.
impala-shell
File "/usr/lib/impala-shell/impala_shell.py", line 248
print '\nAdvanced Query Options:'
모,, python이 하위 호환이 안되고,, 그 중 가장 큰게,, print시 ()가 없으면 python3에서는 에러가 발생되는건데,,,
방법은 2가지가 있다.
/usr/lib/impala-shell/impala_shell.py의 모든 print를 찾아서, ()를 넣어주는 방법(이건 좀 아닌듯)과
impala-shell 실행시 python2 환경에서 실행하는 것이다.
먼저 impala-shell이 어디에 위치되어 있는지 확인해보고,
which impala-shell
/usr/bin/impala-shell
impala-shell을 수정해 준다.
sudo vi /usr/bin/impala-shell
.
.
.
# We should set the EGG_CACHE to a per-user temporary location.
# This follows what hue does.
PYTHON_EGG_CACHE=/tmp/impala-shell-python-egg-cache-${USER}
if [ ! -d ${PYTHON_EGG_CACHE} ]; then
mkdir ${PYTHON_EGG_CACHE}
fi
# External module eggs are located in /ext-py, append them to the PYTHONPATH
EGG_PATH=''
for EGG in $(ls ${SHELL_HOME}/ext-py/*.egg); do
EGG_PATH="${EGG}:${EGG_PATH}"
done
PYTHONPATH="${EGG_PATH}${SHELL_HOME}/gen-py:${SHELL_HOME}/lib:${PYTHONPATH}" \
exec python ${SHELL_HOME}/impala_shell.py "$@"
실제 impala-shell을 실행해주는 'exec python ${SHELL_HOME}/impala_shell.py "$@"'의 python을
exec python2 ${SHELL_HOME}/impala_shell.py "$@" 요렇게 또는 python2.x의 경로로 변경해준다.
'HADOOP' 카테고리의 다른 글
hadoop client 설치 (0) | 2019.12.18 |
---|---|
[OOZIE] workflow의 job의 status 확인 (0) | 2019.10.17 |
[sqoop] CLOB/BLOB column data import (0) | 2019.09.09 |
[CDH] "Java 프로세스에서 검사한 이 호스트의 호스트 이름과 정식 이름이 동일하지 않습니다." (0) | 2019.09.09 |