纱簇上的Spark创建了一个工人数量比Spark上下文(100(中指定的工人数量少得多(只有4名工人(的Spark作业:以下是我如何创建spark上下文和会话:
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
愿意接受的任何想法
如果指定最小工作节点大于等于集群中实际的工作人员/执行人员,则spark会话将在运行作业时分配最大数量的可用工作节点。
您还可以通过使用以下内容查看会话中分配的执行器数量来验证这一点:
sc._conf.get('spark.executor.instances')
我希望你了解