Prakhar Jain是Qubole的一名技术人员,他在那里从事Spark的工作。Prakhar拥有印度理工学院(Indian Institute of Technology,孟买)的计算机科学工程学士学位。
在运行时(高档)向已经运行的Spark-on-Yarn集群添加节点是相当容易的。但是,在以后某个时间点工作负载较低时删除这些节点(Downscale)是一个困难的问题。要从正在运行的集群中删除一个节点,我们需要确保它既不用于计算,也不用于存储。
但是在生产工作负载上,我们看到许多节点不能被带走,因为:
在本次演讲中,我们将讨论如何在存在此类约束的情况下改进Spark-on-YARN集群的降尺度。我们将讨论YARN和Spark任务调度程序中容器分配调度策略的变化,它们共同帮助我们实现更好的容器打包。这确保容器在较少的节点集上进行碎片整理,因此一些节点没有任何计算。除此之外,我们还将介绍Spark驱动程序和外部Shuffle服务(ESS)的增强功能,这有助于我们主动删除我们已经知道已经消耗的Shuffle数据。这确保了节点不持有任何不必要的shuffle数据——从而将它们从存储空间中释放出来,从而可用于回收以更快地缩减规模。