2017-08-04 9 views
0

は、クラスタモードでscala spark 2.1アプリケーションを実行する際に問題があります。 EMR Sparkクラスタモードハイブの問題

Release label:emr-5.7.0* 
Hadoop distribution:Amazon 2.7.3 
Applications:Hive 2.1.1, Presto 0.170, Spark 2.1.1, Ganglia 3.7.2, Zeppelin 
0.7.2, ZooKeeper 3.4.10 

は完全に作業し、クラスタ上 clientモードを経由して提出 .jar持っています。 私は clusterモードでjarファイルを提出しようとすると、私は例外を受け取ります。ここでは

java.lang.IllegalArgumentException: Error while instantiating org.apache.spark.sql.hive.HiveSessionState': 
    at org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$reflect(SparkSession.scala:981) at org.apache.spark.sql.SparkSession.sessionState$lzycompute(SparkSession.scala:110) 

...

Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf 
    at org.apache.spark.sql.hive.client.HiveClientImpl.<init>(HiveClientImpl.scala:97) 

は私がアプリケーションを実行しようとする方法である:ここでは

spark-submit --master yarn \ 
--deploy-mode cluster \ 
--num-executors 64 \ 
--executor-cores 6 \ 
--driver-memory 6g \ 
--executor-memory 10g \ 
--conf "spark.driver.extraClassPath=/usr/lib/spark/jars/*.jar" \ 
--conf "spark.executor.extraClassPath=/usr/lib/spark/jars/*.jar" \ 
--conf "spark.yarn.queue=test_queue" \ 
--conf "spark.sql.hive.metastore.jars=/usr/hive/lib/*.jar" \ 
--jars /usr/lib/spark/jars/datanucleus-rdbms-3.2.9.jar,/usr/lib/spark/jars/datanucleus-api-jdo-3.2.6.jar,/usr/lib/spark/jars/datanucleus-core-3.2.10.jar \ 
--class MainApp /home/hadoop/app/application-1.0.jar 

です私の初期設定SparkSession

val sparkSession = SparkSession 
    .builder() 
    .appName(applicationName) 
    .enableHiveSupport() 
    .config("hive.exec.dynamic.partition", "true") 
    .config("hive.exec.dynamic.partition.mode", "nonstrict") 
    .getOrCreate() 

誰かが何か提案をしてもらえますか?試してみる価値がありますか?

PS:このクラスタ上pysparkアプリケーションが

+0

を見て、クラスタ内のすべてのスレーブに存在**ハイブ** jarをしましたか? – mrsrinivas

+0

@mrsrinivasはい、すべてのjarがスレーブノードに存在します – oki

答えて

0
spark-submit --master yarn \ 
--deploy-mode cluster \ 
--num-executors 64 \ 
--executor-cores 6 \ 
--driver-memory 6g \ 
--executor-memory 10g \ 
--conf "spark.driver.extraClassPath=/usr/lib/spark/jars/*.jar" \ 
--conf "spark.executor.extraClassPath=/usr/lib/spark/jars/*.jar" \ 
--conf "spark.yarn.queue=test_queue" \ 
--conf "spark.sql.hive.metastore.jars=/usr/hive/lib/*.jar" \ 
--jars /usr/lib/spark/jars/datanucleus-rdbms- 
3.2.9.jar,/usr/lib/spark/jars/datanucleus-api-jdo- 
3.2.6.jar,/usr/lib/spark/jars/datanucleus-core-3.2.10.jar \ 
--class MainApp /home/hadoop/app/application-1.0.jar 

はどこsqpar.sql.hive.metastore.jarとのハイブのjarファイルを検索する場所を指定しないでくださいクラスタモードで魔法のように動作します。 EMRはあなた自身のためにそれを行います。そのショットをあげる。

動作しない場合は、EMRクラスタ設定を送信してください。

+0

Unf。それは助けにはならない、私はemr confで質問を更新した – oki

0

問題が修正されました、火花が時代遅れのlibs

関連する問題