복붙노트

[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