我正在开展一个火花项目,并且我正在使用具有以下配置的3个节点的hadoop集群:
4cores和4go of Ram (datanode,nodemanager和worker) 所以我使用以下配置:
pyspark --master yarn-client --driver-memory 3g --executor-memory 1g --num-executors 3 --executor-cores 1
执行器,内存和内核的最佳使用量是什么?我的集群性能是什么?
答案 0 :(得分:1)
这基本上归结为您需要处理数据的程度。如果您有整个集群来处理数据,则可以完全使用。
pyspark --master yarn-client --driver-memory 3g --executor-memory 1g --num-executors 3 --executor-cores 1
这里您没有使用完整的群集。您正在使用带有3个执行程序的3gb驱动程序和1 GB执行程序,这意味着总共3 GB内存,而群集中有12 Gb内存和8个内核。您可以尝试一种备用配置
pyspark --master yarn-client --driver-memory 8g --executor-memory 3g --num-executors 4 --executor-cores 3
这使用完整的群集。
但是,执行程序内存配置主要基于作业要求。您需要多次尝试调整它。您可以查看此document进行调整。
答案 1 :(得分:0)
This博客文章很好地解释了各种开销的资源分配问题,here是一个方便的Excel备忘单。
但是,如果您是Spark新手和/或经常更改群集大小/类型,我是否可以建议启用dynamic allocation?