본문 바로가기
빅데이터/spark

[spark] Unable to instantiate SparkSession with Hive support because Hive classes are not found. 오류 해결 방법

by hs_seo 2019. 11. 8.

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
반응형