2017-12-07 9 views
3

Sparkアプリケーションのjarファイルを作成し、​​を使って実行しようとすると、次のエラーが発生します。spark-submitが "IllegalArgumentException:Missing application resource"で失敗するのはなぜですか?

これは私が実行に使用したコマンドです。

spark-submit --executor-memory 1g --jars s3://test-data-lab-users/spachari/test/test_2.10-1.0.jar 

これはエラーです。これは、私がspark-submitで正しいパラメータを渡さなかったことを意味しますか?

Exception in thread "main" java.lang.IllegalArgumentException: Missing application resource. 
    at org.apache.spark.launcher.CommandBuilderUtils.checkArgument(CommandBuilderUtils.java:241) 
    at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildSparkSubmitArgs(SparkSubmitCommandBuilder.java:160) 
    at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildSparkSubmitCommand(SparkSubmitCommandBuilder.java:276) 
    at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildCommand(SparkSubmitCommandBuilder.java:151) 
    at org.apache.spark.launcher.Main.main(Main.java:86) 
Command exiting with ret '1' 

答えて

2

TL; DR--jarsオプションを削除して最初からやり直します。

java.lang.IllegalArgumentException:アプリケーションリソースがありません。

あなたは、メッセージが「アプリケーションリソース」とを意味し、あなたの...よく...スパークアプリケーションを逃しました。

これは、​​を実行して、異なるコマンドラインオプションとその意味を理解すると、はっきりと分かります。一部<app jar | python file | R file>はあなたが逃した何かであることを

./bin/spark-submit 
Usage: spark-submit [options] <app jar | python file | R file> [app arguments] 

問題を再現するには、​​を--jarsオプションで実行するだけで、Sparkアプリケーションのメインジャーまたはクラスを指定する必要はありません。

spark-submit --helpを引用
$ ./bin/spark-submit --jars target/spark-parent_2.11-2.3.0-SNAPSHOT-tests.jar 
Exception in thread "main" java.lang.IllegalArgumentException: Missing application resource. 
    at org.apache.spark.launcher.CommandBuilderUtils.checkArgument(CommandBuilderUtils.java:241) 
    at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildSparkSubmitArgs(SparkSubmitCommandBuilder.java:160) 
    at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildSparkSubmitCommand(SparkSubmitCommandBuilder.java:274) 
    at org.apache.spark.launcher.SparkSubmitCommandBuilder.buildCommand(SparkSubmitCommandBuilder.java:151) 
    at org.apache.spark.launcher.Main.main(Main.java:86) 

--jars

--jarsドライバとエグゼキュータクラスパスに含まれるように瓶のカンマ区切りリストジャー...です。スパークアプリケーションは、あなたのユーバージャーに「アセンブリ」追加のjarファイル(別名依存関係)、あなたは(または最も可能性が高いしたくない)ことができない、すなわちmysql-connect.jarに依存する場合

--jars

は非常に役立ちます。

+0

私はspark-submit s3://test-data-lab-users/spachari/test/test_2.10-1.0.jarを試してみると、ClassNotFoundExceptionを取得します。助言があれば助けてください – Srinivas

+0

gist.github.comなどを使って、1)アプリケーションをビルドし、2)展開し、3)スタックトレース全体を正確に表示します。あなたが扱っているものを推測させてはいけません。ありがとう。 –

関連する問題