【发布时间】:2020-06-09 19:31:26
【问题描述】:
纱线集群上的 Spark 创建了一个 Spark 作业,其工作人员的数量(只有 4 个工作人员)远小于 Spark 上下文中指定的数量(100): 这是我创建火花上下文和会话的方法:
config_list = [
('spark.yarn.dist.archives','xxxxxxxxxxx'),
('spark.yarn.appMasterEnv.PYSPARK_PYTHON','xxxxxxxxx'),
('spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON','xxxxxxxxxxx'),
('spark.local.dir','xxxxxxxxxxxxxxxxxx'),
('spark.submit.deployMode','client'),
('spark.yarn.queue','somequeue'),
('spark.dynamicAllocation.minExecutors','100'),
('spark.dynamicAllocation.maxExecutors','100'),
('spark.executor.instances','100'),
('spark.executor.memory','40g'),
('spark.driver.memory','40g'),
('spark.yarn.executor.memoryOverhead','10g')
]
conf = pyspark.SparkConf().setAll(config_list)
spark = SparkSession.builder.master('yarn')\
.config(conf=conf)\
.appName('myapp')\
.getOrCreate()
sc = spark.sparkContext
希望有任何想法
【问题讨论】:
-
即使指定min executors为100,如果你的集群总共只有4个节点(包括master和worker),也无法指定100个executors。
-
我同意 Ashwin Agrawal 的观点。指定集群总共有多少个节点、每个节点有多少个核心和多少内存会很有用。
标签: python apache-spark pyspark hadoop-yarn