[HADOOP] 클라이언트를 만들 수 없습니다 - 하이브와 실행 엔진과 같은 스파크
HADOOP클라이언트를 만들 수 없습니다 - 하이브와 실행 엔진과 같은 스파크
나는 하이브 2.3.4, 스파크 2.4.2 설치 및 하둡 2.8.5와 32GB의 단일 노드 아마존 EMR 클러스터가 있습니다.
나는 하이브의 실행 엔진으로 불꽃을 구성하려합니다.
나는 다음과 같은 명령을 통해 하이브에서 스파크 jar 파일을 연결했다 :
sudo ln -s /usr/lib/spark/jars/spark-core_2.11-2.4.2.jar
sudo ln -s /usr/lib/spark/jars/spark-network-common_2.11-2.4.2.jar
sudo ln -s /usr/lib/spark/jars/scala-library-2.11.12.jar
나뿐만 아니라 하이브-site.xml 파일에서 실행 엔진을 설정했습니다. I은 / etc / 하이브 / conf의 / 폴더에 내 하이브-site.xml 파일에 다음을 추가했습니다 :
<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>
<property>
<name>spark.master</name>
<value>spark://<EMR hostname>:7077</value>
</property>
<property>
<name>spark.eventLog.enabled</name>
<value>true</value>
</property>
<property>
<name>spark.eventLog.dir</name>
<value>/tmp</value>
</property>
<property>
<name>spark.serializer</name>
<value>org.apache.spark.serializer.KryoSerializer</value>
</property>
<property>
<property>
<name>spark.yarn.jars</name>
<value>hdfs://<EMR hostname>:8020/spark-jars/*</value>
</property>
또한, 나는 HDFS 폴더 이름 스파크 항아리에 스파크의 모든 항아리를 복사 한
내가 하이브 쿼리를 실행하고하면, 다음과 같은 오류가 발생합니다 :
Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j2.properties Async: false
FAILED: SemanticException Failed to get a spark session: org.apache.hadoop.hive.ql.metadata.HiveException: Failed to create spark client.
나는 또한 하이브 하둡 로그를 확인하고 그것은 단지 나 다음을 제공합니다 :
2019-07-02T13:33:23,831 ERROR [f7d8916c-25f1-4d90-8919-07c4b3422b35 main([])]: ql.Driver (SessionState.java:printError(1126)) - FAILED: Semanti$
org.apache.hadoop.hive.ql.parse.SemanticException: Failed to get a spark session: org.apache.hadoop.hive.ql.metadata.HiveException: Failed to c$
at org.apache.hadoop.hive.ql.optimizer.spark.SetSparkReducerParallelism.getSparkMemoryAndCores(SetSparkReducerParallelism.java:240)
at org.apache.hadoop.hive.ql.optimizer.spark.SetSparkReducerParallelism.process(SetSparkReducerParallelism.java:173)
at org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:105)
at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:89)
at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56)
at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61)
at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61)
at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61)
at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:120)
at org.apache.hadoop.hive.ql.parse.spark.SparkCompiler.runSetReducerParallelism(SparkCompiler.java:288)
at org.apache.hadoop.hive.ql.parse.spark.SparkCompiler.optimizeOperatorPlan(SparkCompiler.java:122)
at org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:140)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:11293)
at org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:286)
at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:258)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:512)
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1317)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1457)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1237)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1227)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:233)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:184)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:403)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:336)
at org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:474)
at org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:490)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:793)
나는 다음과 같은 HQL 파일을 실행하고 있습니다 :
set hive.spark.client.server.connect.timeout=300000ms;
set spark.executor.memory=4915m;
set spark.executor.cores=2;
set spark.yarn.executor.memoryOverhead=1229m;
set spark.executor.instances=2;
set spark.driver.memory=4096m;
set spark.yarn.driver.memoryOverhead=400m;
select column_name from table_name group by column_name;
당신이 다른 구성 파일을 참조해야하는 경우 말해 제발 ...
때문에 버전 호환성이 오류인가? 아니면 아마존 EMR에 하이브와 실행 엔진으로 불꽃을 사용할 수 없습니다?
해결법
from https://stackoverflow.com/questions/56853923/failed-to-create-client-spark-as-execution-engine-with-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Giraph의 추정 클러스터 힙 xxxxMBs 물어 0메가바이트의 현재 가용성 클러스터 힙보다 더 크다. 작업 중단 (0) | 2019.10.01 |
---|---|
[HADOOP] fs.defaultFS 속성을 설정하는 경우 Dataproc에서 클러스터를 만들 수 없습니다? (0) | 2019.10.01 |
[HADOOP] 단어 수 파일의 일반적인 단어 (0) | 2019.10.01 |
[HADOOP] 같은 아파치 스파크 스파크 쉘 쇼 서로 다른 데이터베이스 직선 및 수 있습니까? (0) | 2019.10.01 |
[HADOOP] 맵리 듀스 작업을 기본 호출하지 않는 하이브 명령에 대한 (0) | 2019.10.01 |