2016-12-16 8 views
0

アプリケーションのhadoopクラスタにスパーク1.5がインストールされています。しかし、特定の要件のために、私たちはバージョン2.0.2でspark jobを開発しました。私が糸にジョブを提出するとき、私は--jarsコマンドを使用して、クラスタ内のスパークライブラリをオーバーライドします。しかし、まだそれはスカラーライブラリの瓶を選んでいません。スパーク送信時にsparkのライブラリをオーバーライド

ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object; 
java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object; 
    at org.apache.spark.sql.SparkSession$Builder.config(SparkSession.scala:713) 
    at org.apache.spark.sql.SparkSession$Builder.appName(SparkSession.scala:704) 

spark submit中にクラスタライブラリを無効にする方法についてのアイデアはありますか?

私がジョブを送信するために使用するシェルコマンドは以下のとおりです。かなり簡単です

spark-submit \ 
    --jars test.jar,spark-core_2.11-2.0.2.jar,spark-sql_2.11-2.0.2.jar,spark-catalyst_2.11-2.0.2.jar,scala-library-2.11.0.jar \ 
    --class Application \ 
    --master yarn \ 
    --deploy-mode cluster \ 
    --queue xxx \ 
    xxx.jar \ 
    <params> 

答えて

0

- 糸はあなたが実行しているスパークのバージョンを気にしない、それが提出スパークによりパッケージ化された糸クライアントが提供するjarファイルを実行します。そのプロセスは、あなたのアプリケーションjarをスパークライブラリに沿ってパッケージ化します。

提供された1.5の代わりにSpark 2.0を導入するには、あなたの仕事を開始するホストにspark 2.0をインストールするだけです。あなたのホームディレクトリに、YARN_CONF_DIR env varsをhadoop confを指すように設定し、そのspark-submitを使用します。

関連する問題