Spark:如何在spark-submit中设置spark.yarn.executor.memoryOverhead属性

5
在Spark 2.0中,当你运行spark submit时,如何设置spark.yarn.executor.memoryOverhead属性?
对于像spark.executor.cores这样的属性,你可以设置--executor-cores 2。对于这个属性,是否也是相同的模式?例如,--yarn-executor-memoryOverhead 4096。

1
可能是spark-submit命令... --conf spark.yarn.executor.memoryOverhead 4096 ... - Ilya Brodezki
2个回答

18
请看示例。 这些值也可以在Sparkconf中提供。
示例:
./bin/spark-submit \
--[your class] \
--master yarn \
--deploy-mode cluster \
--num-exectors 17
--conf spark.yarn.executor.memoryOverhead=4096 \
--executor-memory 35G \  //Amount of memory to use per executor process 
--conf spark.yarn.driver.memoryOverhead=4096 \
--driver-memory 35G \   //Amount of memory to be used for the driver process
--executor-cores 5
--driver-cores 5 \     //number of cores to use for the driver process 
--conf spark.default.parallelism=170
 /path/to/examples.jar

7

spark.yarn.executor.memoryOverhead已经弃用:

警告 spark.SparkConf:自Spark 2.3起,配置键“spark.yarn.executor.memoryOverhead”已被弃用,并且可能在未来被删除。请改用新键“spark.executor.memoryOverhead”。


您可以通过将其作为配置传递来编程设置spark.executor.memoryOverhead

spark = (
    SparkSession.builder
        .master('yarn')
        .appName('StackOverflow')
        .config('spark.driver.memory', '35g')
        .config('spark.executor.cores', 5)
        .config('spark.executor.memory', '35g')
        .config('spark.dynamicAllocation.enabled', True)
        .config('spark.dynamicAllocation.maxExecutors', 25)
        .config('spark.yarn.executor.memoryOverhead', '4096')
        .getOrCreate()
)
sc = spark.sparkContext

我正在使用Spark 2.4.5版本,如果它已被弃用,那么为什么我会收到org.apache.spark.SparkException:作业因阶段失败而中止:第1218.0阶段中的任务51失败了1次,最近一次失败:在第1218.0阶段中丢失了任务51.0(TID 62209,在dev1-zz-1a-10x24x96x95.dev1.grid.spgmidev.com上,执行程序13):ExecutorLostFailure(执行程序13退出,由于其中一个运行任务而导致)原因:容器因超过内存限制而被YARN杀死。请考虑增加spark.yarn.executor.memoryOverhead或禁用yarn.nodemanager.vmem-check-enabled,因为存在YARN-4714。 - Shasu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接