Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

-

[impala-shell]python3에서 SyntaxError 처리 본문

HADOOP

[impala-shell]python3에서 SyntaxError 처리

푸른파랑 2019. 10. 1. 10:51
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의 경로로 변경해준다.