APP下载

Storm环境下基于权重的任务调度算法

2018-05-21英昌甜师康利蒲勇霖

计算机应用 2018年3期

鲁 亮,于 炯,卞 琛,英昌甜,3,师康利,蒲勇霖

(1.新疆大学 信息科学与工程学院,乌鲁木齐 830046; 2.新疆大学 软件学院,乌鲁木齐 830008;3.新疆大学 电气工程学科博士后科研流动站,乌鲁木齐 830047)

0 引言

随着互联网和各类智能终端的普及,数据呈现出井喷式发展的趋势,MapReduce等各类大数据处理框架应运而生[1-2]。然而,这类传统的大数据批量处理框架无法满足部分企业的实时性业务需求。Apache Storm[3-4]作为一个开源、实时、分布式部署、容错且扩展性良好的大数据流式计算系统[5-6],已成功解决这一问题并引起了学术界和企业界的高度关注。在Storm系统中,只要数据源处于活动状态,元组便会源源不断地发送至各工作节点,计算和传输将持续发生,无需进行中间结果的持久化存储,在实时个性化推荐、实时交通大数据分析、实时临床数据分析等领域具有广阔的应用前景[7-9]。

Storm在进行任务分配时采用轮询(Round-Robin,RR)调度算法,即将用户提交的拓扑中包含的每一个任务均匀分配到各工作进程中,再将各工作进程均匀分配到各工作节点上,未考虑到各任务计算开销的差异以及任务与任务之间不同类型的通信开销,这将对Storm处理的实时性产生较大影响。针对这一问题,已有少量国内外学者展开相关研究。文献[10]提出资源感知的在线调度算法R-Storm,将Storm资源分为硬约束(针对内存)和软约束(针对CPU和网络)两类,利用任务需求的各类静态资源和工作节点所能提供的静态资源之间的关系实现调度,最终达到最大化资源利用率和提高集群吞吐量的效果,但该算法中各任务的资源需求完全依靠程序员人为设定而并非通过监测获得,不适合数据流快速变化场景下的在线调度。……

登录APP查看全文