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

[spark] spark3와 hive3 메타스토어 연동

by hs_seo 2021. 6. 21.

스파크3와 하이브3 메타스토어를 연동하는 방법은 다음과 같습니다.

 

  1. 스파크-하이브 라이브러리 추가
    1. spark-hive_2.12-3.1.2.jar를 다운로드하고 ${SPARK_HOME}/jars 에 추가
  2. jline 2.14.6 라이브러리 추가
    1. 기존 라이브러리 버전이 낮아서 다음 오류가 발생
    2. 스파크3 버전에 따라 오류가 발생하지 않으면 추가 하지 않아도 됨
  3. ${SPARK_HOME}/conf 에 hive-site.xml 에 hive 라이브러리 추가
    1. export SPARK_DIST_CLASSPATH=$(hadoop classpath):/opt/hive/lib/*
  4. ${SPARK_HOME}/conf 에 hive-site.xml 추가
    1. hive-site.xml 파일을 추가하고, hive.metastore.uris 설정을 추가 합니다.
<configuration>
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://localhost:9083</value>
  </property>
</configuration>

 

모든 설정이 완료된 후 spark-shell을 실행해서, spark.conf.get("spark.sql.catalogImplementation") 명령을 입력했을 때 hive가 나오면 메타스토어와 정상적으로 연결된 상태입니다. in-memory가 나오면 연결이 안된 상태입니다.

 

scala> spark.conf.get("spark.sql.catalogImplementation")
res0: String = hive

Jline 오류

jline 버전에 따라 NoSuchMethodError 가 발생하면 버전을 변경해 주면 됩니다.

java.lang.NoSuchMethodError: jline.console.completer.CandidateListCompletionHandler.setPrintSpaceAfterFullCompletion
반응형