2017-04-10 4 views
0

기본 MapReduce 대신 실행 엔진으로 Spark를 사용하기 위해 Google Dataproc 이미지 v1.1 (Hive 2.1.0 및 Spark 2.0.2)에서 실행중인 Hive를 구성하려고합니다.Google Dataproc에서 Spark 실행 엔진을 사용하도록 Hive를 구성하는 방법은 무엇입니까?

여기의 지침에 따라 https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started이 도움이되지 않습니다. hive.execution.engine=spark을 설정하면 Error running query: java.lang.NoClassDefFoundError: scala/collection/Iterable 오류가 계속 발생합니다.

누구나 Dataproc에서 실행되도록 특정 단계를 알고 있습니까? Hive와 Spark 모두 클러스터에 이미 설치되고 구성되어 있고 Spark의 Hive를 사용하므로 (정상적인 방법으로) 잘 작동합니다.

답변

1

이것은 Dataproc 클러스터의 jar에서는 작동하지 않을 것입니다. Dataproc에서 Spark는 Hive 번들 (-Phive)로 컴파일됩니다.이 파일은 Hive on Spark에서 제안/지원하지 않습니다.

실제로 Hive를 Spark에서 실행하려는 경우 wiki에 설명 된대로 컴파일 된 초기화 작업에서 고유 한 Spark를 가져 오려고 할 수 있습니다.

Tez을 실행중인 Dataproc에서 MapReduce를 사용하여 Hive를 실행하려면 this initialization action을 사용하는 것이 좋습니다.

+0

고마워요! Spark를 시도하기 전에 실제로 Tez에서 실행 해 보았습니다.하지만 작동하지 않았습니다. Tez을 성공적으로 설치 한 초기화 동작을 사용했지만'hive.execution.engine = tez'을 설정할 때'Error running query : java.lang.NoClassDefFoundError : org/apache/tez/runtime/api/Event' 명령을 계속 보냈습니다. . Tez이 작동하도록하기 위해 내가 무엇이 필요한지 아십니까? – domkck