EMR 5.24에서 우지와 스파크 sql을 이용하여 작업을 하려고 하면 다음과 같은 오류가 발생합니다.
에러로그
Caused by: java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found.
at org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:870)
at com.sec.bigdata3.analyzer.scala.profile.RunestoneProfile$.main(RunestoneProfile.scala:32)
at com.sec.bigdata3.analyzer.scala.profile.RunestoneProfile.main(RunestoneProfile.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
원인
- spark-shell을 이용하여 작업을 할 때는 동작
- 우지를 이용하여 작업을 할 때는 오류가 발생함
- 우지의 sharelib에 필요한 파일이 빠져 있음
해결방법
- spark sql을 사용하기 위해서 필요한 파일을 우지 sharelib에 올리고 update하면 됨
- 위치
- /usr/lib/spark/jars
- 파일
- hive-beeline-1.2.1-spark2.jar
- hive-cli-1.2.1-spark2.jar
- hive-exec-1.2.1-spark2.jar
- hive-jdbc-1.2.1-spark2.jar
- hive-metastore-1.2.1-spark2.jar
- 위치
# 각 파일을 우지 sharelib의 spark 폴더로 복사
$ hadoop fs -put /usr/lib/spark/jars/hive-beeline-1.2.1-spark2.jar /oozie/share/lib/spark/
# 복사한 파일 목록을 갱신
$ oozie admin -sharelibupdate
반응형