2016-05-18 4 views
2

スパークジョブを送信するときに、依存するjarを外部に追加する方法。 また、依存JarをアプリケーションJarでパッケージ化する方法も知っています。スタンドアロンクラスタでスパークジョブを送信する

+0

これは 'spark-submit'スクリプト(https://spark.apache.org/docs/latest/submitting-applications.html)のドキュメントには書かれていませんか? ? – DNA

+0

以下の回答は役に立ちましたか? – marios

答えて

1

これは人気の質問です、私はstackoverflowの中にいくつかの良い答えを探したが、私は尋ねたとおりにこれを答える何かを見つけられませんでしたので、私はここにこれを答えることを試みる:


最高ジョブを送信する方法は、​​スクリプトを使用することです。これは、実行中のクラスタがすでに存在していることを前提としています(分散またはローカル、重要ではありません)。

このスクリプトは$SPARK_HOME/bin/spark-submitにあります。ここで

は一例です:

spark-submit --name "YourAppNameHere" --class com.path.to.main --master spark://localhost:7077 --driver-memory 1G --conf spark.executor.memory=4g --conf spark.cores.max=100 theUberJar.jar 

あなたはあなたのメインクラスが配置されている場所を定義し、(クラスタが実行される)スパークマスターの場所、アプリに名前を付けます。必要に応じて、異なるパラメータを渡すことができます。最後の引数は、メインとすべての依存関係を含むuberJarの名前です。

theUberJar.jarは、アプリをパッケージ化する方法に関する2番目の質問に関連しています。 Scalaを使用している場合、最も良い方法は、sbt-assemblyを使用してsbtを使用し、uber jarを作成することです。ここで

手順は次のとおりです。

  • sbt assembly
  • を使用して、あなたのユーバーのjarファイルを作成し、クラスタを起動し
  • は($SPARK_HOME/sbin/start-all.sh)
  • ステップ1
からユーバージャーを使用して、実行中のクラスタにアプリケーションを登録します
関連する問題