同じスパークコンテキストでさまざまなジョブをオンデマンドで実行したいのですが、これをどのように正確に行うことができないのでしょうか。同じスパークコンテキストで複数のオンデマンドジョブを実行する方法
私は現在のコンテキストを取得しようとしますが、(新しいエグゼキュータを使用して)新しいスパークコンテキストを作成するようです。
私はspark-submitを呼び出して新しいジョブを追加します。
Amazon EMR上でコードを実行し、糸をリソースマネージャーとして使用します。
マイコード:
val sparkContext = SparkContext.getOrCreate()
val content = 1 to 40000
val result = sparkContext.parallelize(content, 5)
result.map(value => value.toString).foreach(loop)
def loop(x: String): Unit = {
for (a <- 1 to 30000000) {
}
}
が火花提出:
spark-submit --executor-cores 1 \
--executor-memory 1g \
--driver-memory 1g \
--master yarn \
--deploy-mode cluster \
--conf spark.dynamicAllocation.enabled=true \
--conf spark.shuffle.service.enabled=true \
--conf spark.dynamicAllocation.minExecutors=1 \
--conf spark.dynamicAllocation.maxExecutors=3 \
--conf spark.dynamicAllocation.initialExecutors=3 \
--conf spark.executor.instances=3 \
私は火花提出し、それが6人の執行を作成するが、私は同じスパークアプリケーションにこのすべてのジョブを実行したい二回実行した場合。
既存のスパークアプリケーションにジョブを追加する方法を教えてください。
私がやりたいことを達成したJobServer(https://github.com/spark-jobserver/spark-jobserver)について読んだけど、どうやってこれをやっているのか分かりません。