현재 사용하고 있는 스파크 2.0.2버전에서 SQL을 이용하여 하이브의 ADD JAR 명령을 실행하면 다음과 같은 오류가 발생합니다.
scala> sql("""ADD JAR 'hdfs:///user/a.jar'""")
scala> sql("""ADD FILE 'hdfs:///user/b.txt'""")
19/03/22 06:40:35 INFO SparkSqlParser: Parsing command: ADD JAR 'hdfs:///user/a.jar'
java.net.MalformedURLException: unknown protocol: hdfs
at java.net.URL.<init>(URL.java:600)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at java.net.URI.toURL(URI.java:1089)
at org.apache.spark.sql.hive.client.HiveClientImpl.addJar(HiveClientImpl.scala:705)
at org.apache.spark.sql.hive.HiveSessionState.addJar(HiveSessionState.scala:109)
그런데 ADD FILE 명령은 동작합니다. 둘다 같은 스키마인데 위치를 찾을 수 없다고 나와서 확인해보니 버그(SPARK-12868)입니다. 2.2.0 버전에서 수정되었다고 합니다.
이 문제를 해결하기 위해서 스파크 쉘을 실행할 때 --jars 옵션을 이용해서 라이브러리를 추가하여 해결하였습니다.
# jars 옵션 추가
spark-shell --jars a.jar,b.jar
'빅데이터 > spark' 카테고리의 다른 글
[spark] MLib 라이브러리 (0) | 2019.04.11 |
---|---|
[spark] AWS EMR에서 spark-sql을 이용하여 s3 테이블에 데이터를 쓸 때 발생하는 chgrp 오류 (0) | 2019.03.26 |
[spark] 스파크 2.0의 성능개선-직렬화,off-heap,옵티마이저 (0) | 2019.03.07 |
[spark] 스파크 작업 실행하고 처리시간(elapsed) 확인 (0) | 2019.03.06 |
[scala] 이클립스를 이용하여 스파크의 스칼라 개발환경 설정하기 (0) | 2018.06.11 |