基于用户共享的Spark集群弹性扩缩容

网友投稿 888 2022-05-28

1. 背景介绍

Apache Spark是专门为大规模数据处理而设计的快速、通用的并行数据处理框架引擎,能够帮助用户开发快速、统一的大数据应用。和传统的Hadoop相比,Spark通过内存计算方式来避免一个MapReduce工作中多个任务对同一个数据集进行计算时的I/O瓶颈。Spark作为一个内存计算框架,具有批处理、流处理、SQL查询、文本处理、机器学习等多种能力。当前Spark集群通常以ECS+磁盘(云盘或者本地盘)配合一系列开源组件组成。集群创建后,在业务高峰期会存在资源不足情况,需要扩容来满足业务需求;在业务低峰期,需要根据业务量及时的缩容资源,避免资源的浪费和成本的增加。

2. 传统Spark集群存在的问题

基于多用户共享的Spark集群弹性扩缩容

对于用户业务量不是很大或者业务存在周期性的场景:如果该用户一直占有集群的所有资源,则会造成很大的计算资源浪费和成本的增加;如果对该用户的集群资源回收,下次再利用的时候需要重新创建集群并安装业务所需的镜像,则会浪费很大的时间去准备环境,造成了很大的不便。

对于多个用户使用同一个集群的场景:比如用户A使用的资源比较少,但是使用资源的业务是持续的。用户B使用的资源量大,但是业务是间断性的。当B用户使用大量计算资源时,A用户提交的作业任务有可能会一直处于请求资源状态,不能及时的处理作业任务,造成任务的积压。

图1 多用户共享集群作业串行执行情况

如何将上述两种场景融合在一起,不同的用户作业之间不相互受影响,同时能够快速的为用户分配所需资源,是衡量集群弹性伸缩方案优劣的重要指标,也是用户非常关心和头疼的问题。

3. DLI多租户共享default队列自动扩缩容方案

DLI服务预置了名称为“default”的SQL队列,当用户在不确定所需队列容量或者没有可创建队列空间的情况下,可以使用该队列执行作业。使用该队列时,按扫描量计费。该队列的集群基于华为云CCE创建,在继承了spark on k8s各种特性的同时,相较于Hadoop集群,在集群扩缩容性能、资源隔离等方面做了很大优化。

图2 多用户共享集群作业并行执行情况

3.1 用户不需要单独购买队列,按需秒级分配资源

当用户提交作业在队列上时,立即分配计算资源开始执行作业。传统的共享集群计算资源有限,而且按照先来先占有的方式分配资源,导致用户经常获取不到计算资源,作业长期处理等待状态。优化后的资源池更大,同时预留了资源池缓冲区,用户计算资源分配方式变为每个用户单独分配资源,不再等待其它用户先提交的作业执行完再执行后续用户提交的作业。如果用户对计算资源使用不是很频繁的场景,该方案在保障用户计算资源的同时,为用户节省了集群创建时间,减少了用户作业等待时间。

3.2 多用户计算资源安全隔离,互不影响

在default队列上,DLI为不同用户分配了不同的计算资源,各个用户的计算资源互不干扰。这就避免了不同用户之间计算资源的相互竞争和影响,让用户申请到的计算资源“全心”为申请者服务。

3.3 集群计算资源不足,快速扩容

图3 多用户共享集群作业触发集群扩容

当用户很多即将用完DLI为用户预留的计算资源时,DLI提供了基于阈值的弹性扩缩容能力。比如:当集群资源被占用90%时,DLI会启动集群物理资源扩容,该物理节点扩容会预置安装用户的公共镜像、DLI的管理调度镜像等,一般2分钟内即可完成。由于是提前预置资源,而新用户提交作业时,是从资源缓存池取出所需资源,不用等待十几分钟甚至更长时间的物理资源扩容等待,为用户提供了很好的作业执行体验。即使大量用户同时请求资源,DLI后台的物理集群也能够在几分钟内完成大量物理机器节点的扩容,用户不用担心长时间的等待。

3.4 集群计算资源过于充足,触发缩容

当用户资源过于充足时,DLI会触发基于阈值的缩容。比如:当集群资源被占用60%时,DLI会启动集群物理资源缩容,节省了大量的非必须计算成本。在缩容时,集群节点并不是立即释放,而且首先将没有运行作业的节点放入释放缓冲池,如果在一定时间内,没有新的作业到来触发扩容,则释放缓冲池中的计算节点。如果有新的作业到来触发扩容,则将释放缓冲池中的节点重新加入计算资源池。

图4 多用户共享集群空闲时触发缩容

4. 总结

华为云DLI数据湖探索服务在开源Spark基础上进行了大量的性能优化与服务化改造,兼容Apache Spark生态和接口,动态资源分配的开启和多用户共享default集群弹性扩缩容使用,在充分使用计算资源的基础上,节省了用户的成本,优化了用户使用体验。同时,对于用户按需专属队列,DLI已经支持用户指定扩缩容计划的定时扩缩容。用户根据自己的业务繁忙周期,制定自己所需的队列扩缩容计划,定时预置满足业务所需的计算资源,同时节省了成本。下一步DLI即将放开基于用户资源负载的用户专属集群自动扩缩容能力。

spark 数据湖探索 DLI EI企业智能 智能数据

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Android之使用IDA Pro静态分析so文件
下一篇:【奖励公示】第16期 2021年12月月度博主评选与博客同步奖励名单公示
相关文章