GOOD4ME

[TEZ] org/apache/tez/dag/api/SessionNotRunning 본문

개발.오류.정리/Hive

[TEZ] org/apache/tez/dag/api/SessionNotRunning

de_youn 2022. 11. 28. 14:30
반응형
무엇이 문제인가?

 

TEZ 엔진 기반의 Hive 구동 시,
아래처럼 오류가 발생하는 것을 확인했다.

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:661)
        at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:591)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:747)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
Caused by: java.lang.ClassNotFoundException: org.apache.tez.dag.api.SessionNotRunning
        at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 10 more

 

왜 이런 에러가 발생한 것인가?

 

간단하다.
TEZ엔진 사용 시, TEZ 관련 라이브러리
환경변수에 등록해야하는데,
등록하지 않았기 때문에 발생한 것이다❗❗❗

 

어떻게 에러를 해결해야하는가?

 

하단처럼 두 가지 변수를 등록한 후,
다시 한 번 구동해보면 해결이 된다😁😁
필자는 tez 설치를 /opt/ 하위에 한 것을 참고 바란다.

export TEZ_CONF_DIR=/opt/apache-tez-0.10.1-bin/conf
export TEZ_JARS=/opt/apache-tez-0.10.1-bin/*:/opt/apache-tez-0.10.1-bin/lib/*

export HADOOP_CLASSPATH=${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*:${HADOOP_CLASSPATH}
export CLASSPATH=$CLASSPATH:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*
반응형
Comments