2回のスパーク送信を同時に実行するにはどうすればよいですか? 私は4つのコアが割り当てられた簡単なスパーク(私のPCには特別な構成はありません)を持っています。複数のスパークアプリを同時に送信する(動的リソース割り当て)
私はアプリの2倍の時間を提出しようとする場合は、2番目の1は は「TaskSchedulerImplをWARN:初期の仕事は、すべてのリソースを受け入れていない。労働者が登録し、十分なリソースを持っていることを確認するために、クラスタのUIを確認し、」取得
をコード: から将来輸入print_function私はそれらを起動しようとする方法
import sys
from operator import add
from pyspark.sql import SparkSession
if __name__ == "__main__":
spark = SparkSession\
.builder\
.appName("test")\
.getOrCreate()
rdd = spark.sparkContext.parallelize(xrange(1000000000), 100)
print(rdd.sample(False, 0.1, 81).count())
spark.stop()
: ./spark-submit --masterスパーク:// myaddresshere:7077 --name "APP1" --confスパーク。 shuffle.service.enabled = true - -conf park.shuffle.service.enabled = true /path_to_py_file.py
私は使用するコア数をあらかじめ設定することができますが、私の目的はリソースを動的に割り当てることです。実行中のタスクが1つのみであれば、100%を消費し、4つのタスクがそれぞれ> 25%であれば消費します。
複数のオプションを試しましたが、運がありません。
ご了承ください。
スパーク・ダイナミック・アロケーションはエクゼクティブ・レベルでのみ機能します。つまり、タスクがキューに積み重なっているときに、より多くのエグゼキュータを割り当てます。追加のエグゼキュータを割り当てることができる場合は、そのセットアップと使用可能なリソースによって異なります。また、ローカルで実行する場合、ドライバにもコアが必要であることに注意してください。 – LiMuBei