随着业务的发展和时间的推移,大数据平台的任务数量越来越多,任务的运行时间也越来越长,用户临时提交任务的等待时间也越来越久,给业务正常运行带来了很大的影响。开发和运维同学为了任务的执行效率提升而针对每个任务进行了大量的手工优化工作,但是随着任务数量的增多和数据量的变化,手工优化的效果很快(几天)又消失了,这样的反复工作,给开发和运维带来了很多额外的工作量和压力。所以,一个新的优化模式:“动态自动化”优化代替了过去的手工优化,使得任务优化更高效、更精准、更动态。LCC-Optimizer(www.lccomputing.com)实现了“2小时部署,0代码改造,2星期见效”的优化能力,为每一个任务提供最精准动态的优化参数,并且实现了自动化和灰度优化。
1.让我们先看一个IDC机房的案例
某消费金融公司,大数据平台集群规模20+台服务器,部署在IDC机房,使用的是CDH,Hadoop版本是3.0.0,hive是2.1.1,spark是2.4.0,任务调度使用的是ozzie 5.1.0。每天运行10000+个任务,优化前CPU利用率40%,内存利用率55%,高峰期yarn利用率持续100%,任务排队情况严重,高峰期排队数量超过2000个,导致任务等待、运行时间越来越久,晚上“跑批”的任务在早上9点还无法完成,白天上班后,员工临时提交的任务又叠加到集群上,造成了更严重的等待,用户体验非常差。

使用LCC-Optimizer两周后,效果如下:
1、 任务执行总时长降低了30%,直观感受是晚上的“跑批”任务在早上9点前能全部完成,业务需要的数据能够及时完成。
2、 白天上班后,工作人员提交的临时任务,实现了不用等待就可直接提交运行,用户体验非常好,工作群中有非常正向的反馈。
3、 夜间高峰期的等待队列数量降低了60%。
4、 机器的CPU利用率提升至60%,内存利用率提升至70%,充分提升了机器资源利用率。
效果如图所示:
部署交付过程:
1、 客户提供一台16核32G的服务器,用于部署LCC-Optimizer服务端。
2、 软件安装部署时间1天(由于网络问题,耗时较久)。
3、 部署完成后,自动收集数据3天,给出时长降低30%,内存降低50%的预估效果。
4、 选择工作日9:00-18:00时间段,打开优化,持续观察两天,无代码改造。
5、 扩大优化任务时间段,9:00-23:00打开优化,持续观察两天,无代码改造。
6、 所有时间段全部打开优化,实现了整体时长降低的效果。
7、 客户侧有1人与我方对接,主要解决连接远程桌面观察控制台时的网络问题,持续时间两周。
2.让我们再看一个公共云的案例
某三方支付平台,使用的是某大厂商公有云大数据平台,共有100+台32核cpu 128G内存的服务器,集群是Hadoop 3.1.1 、spark2.4.5,任务数量每天6000+。当前集群主要问题是任务的资源配置不合理,有任务执行时间比较长、且有失败,高峰期任务排队情况严重,产出数据比较慢。
使用LCC-Optimizer之后,效果如下:
1、 服务器台数降至60台,直接节约40%云服务器成本。
2、 服务器cpu和内存利用率由过去的40%左右提升至70%,大大提升了云服务器的利用率。
3、 任务执行时间缩短25%,并且无失败任务。
效果如图所示:
部署交付过程:
1、客户提供一台8核32G服务器,用于部署LCC-Optimizer的服务端
2、部署时间2小时,自动采集运行数据时间一周,给出预估40%收益的报告。
3、第二周开启Top100任务优化,第三周开启全部任务优化。
4、白天资源降低幅度达到65%,夜间高峰降低幅度30%,共计节约40%的服务器,直接下线云服务器,任务运行时间降低25%。
5、测试期间,客户投入1人月,主要工作是进行集群的缩容操作,其他工作投入较小。
通过这些案例,我们可以看到,通过LCC-Optimizer的动态自动化优化,可以大大提高集群的运行效率或降低大数据平台的拥有成本,大大减轻开发和运维的工作负担,让我们一起由“纯手工打造”的时代升级为“动态自动化”的时代,享受智能带来的效率。
原文链接:https://mp.weixin.qq.com/s/PpXo1-XAp_eOczcG6tJKlw