我正在使用Spark / YARN集群来限制我可以分配到8GB内存和每个容器1个核心的资源,但我可以分配数百甚至数千个执行程序来运行我的应用程序。
然而,由于驱动程序具有类似的资源限制(8GB内存,4个内核),我担心太多的执行程序可能会淹没驱动程序并导致超时。
是否有规则来确定驱动程序内存和内核的大小以处理大量执行程序?
答案 0 :(得分:1)
有关如何确定“执行者”规模的规则。
对于8GB和4核的驱动程序,它应该能够轻松处理数千个执行程序,因为它只维护执行程序的簿记元数据。
假设您没有在spark代码中使用collect()等函数。
Spark代码分析将帮助您了解spark中执行的操作:http://bytepadding.com/big-data/spark/spark-code-analysis/