Page 276 - 《软件学报》2021年第8期
P. 276

2558                                   Journal of Software  软件学报 Vol.32, No.8,  August 2021

                 the energy-efficient strategy based on executor reallocation and data migration in Storm (ERDM) is further proposed, while ERDM is
                 composed of resource constraint algorithm and data migration algorithm. The resource constraint algorithm estimates whether the cluster
                 is appropriate  for data migration according  to the  utilization  of CPU, memory, and  network  bandwidth  in each work  node. The  data
                 migration algorithm designs  optimal method  to migrate  data according  to  the resource constraint model and  the  optimal executor
                 reallocation model. Moreover, the ERDM allocates  the executors  so as  to  reduce communication cost  between  nodes. The ERDM  is
                 evaluated by measuring the cluster performance as well as energy consumption efficiency in big data stream computing environment. The
                 experimental results show that the proposed strategy can reduce communication cost and energy consequence efficiently while the cluster
                 performance is improved compared with existing researches.
                 Key words:    big data; stream computing; real-time; resource constraint; data migration; energy consumption

                                                                                                   [1]
                    目前,随着互联网的高速发展与平民化,智能医疗、智能汽车、智能家居以及智能工业等物联网场景 下产
                 生的数据量日益增多,并与互联网共同成为了各行各业大数据的主要来源.但是随着大数据的飞速发展,大规模
                                                                             [2]
                 的数据中心在全球范围内广泛的部署,使其高能耗、高污染的问题日渐突出 .据 2014 年数据中心能耗现状白
                 皮书指出:全球数据中心 2013 年的耗电量为 8 102.5 亿 kWh,其中 IT 设备与软件的能耗占数据中心总能耗的
                     [3]
                                                                                   [4]
                 45.5% .而到 2015 年,Gartner 统计全球大型数据中心的电费支出超过 1 262 亿美元 .我国数据中心电力的消
                 耗同样惊人,截止到 2011 年底,我国数据中心的总量达到 43 万个,其中数据中心的耗电量,占据全国电力总消耗
                                              [5]
                 的 1.5%,并且所占比例仍在逐年上升 .综上所述,解决大数据处理的高能耗问题已经刻不容缓.
                    希捷(Seagate)公司与 IDC 联合发布的《数据时代 2025》白皮书中预测:2025 年,全球数据量将达到 163ZB,
                 比 2016 年创造出的数据量增加 10 倍.其中,超过 25%的数据将成为实时数据,而物联网实时数据占比将达到实
                            [6]
                 时数据的 95% .针对大数据处理的高性能集群一般分为批量计算框架与流计算框架两类,其中,批量计算框架
                 由于存在先存储后计算的特性,无法满足实时数据的处理需求;而流计算框架由于其强大的实时性,为实时大数
                                                                                                  [7]
                 据分析提供了良好的平台层解决方案.但是流式计算在高速处理实时数据的同时伴随着高能耗的问题 ,已经
                                                                                       [8]
                 给产业界带来了巨大的能耗开销.特别在 2017 年后,针对大数据流式处理节能计算的研究 已经逐渐增多,其研
                 究价值已被广大的科研人员认可.因此,大数据流式处理节能计算不仅减少了能源消耗保护环境,而且具有广阔
                 的研究价值与应用前景.
                                                                                                  [9]
                    目前,主流 IT 企业(如华为、百度以及小米等)针对大数据流式处理的业务主要以 Apache Storm 框架 为主.
                 虽然主流 IT 企业的部分流式处理业务已被迁移至 Flink              [10] 、Spark Streaming [11] 和 Heron [12] 等框架,但其核心的
                 流式处理业务还是基于 Storm 完成的.这是由于与目前主流的 Flink 与后起之秀 Heron 相比,Storm 具有更成熟
                 的平台架构和更广泛的产业基础;与属于微批的框架 Spark Streaming 相比,Storm 具有更好地实时性;与不开源
                 的 Puma [13] 以及社区冷淡的 S4 [14] 相比,Storm 具有更广阔的发展前景.此外,Storm 为适应业界的需求而不断更新
                 其版本,展现出强大的生命力.Storm 是一个主从式架构、开源、横向扩展性良好且容错能力强的分布式实时处
                 理平台,其编程模型简单,支持包含 Java 在内的多种编程语言,且数据处理高效.目前,Storm 已经广泛运用到银行
                 金融 [15] 、临床医疗  [16] 、社交网络 [17] 等行业进行实时大数据分析,并广泛运用到机器学习算法、分布式远程调
                 用等领域进行理论研究        [18] .Storm 因其广泛的业界认可度,而被誉为“实时处理领域的 Hadoop”.
                    在 Storm 集群中,通常使用有向无环图(directed acyclic graph,简称 DAG)表示一个流式作业(拓扑)内数据的
                 相互关联性,其中,DAG 的顶点表示工作线程及数据的处理,DAG 的边表示数据的相互依存性及顶点间的通信.
                 Storm 集群采用轮询调度策略(round-robin,简称 RR),并将 DAG 中的任务平均分配到各工作节点之中.然而,
                 Storm 的发展也面临着一定的挑战.首先,Storm 通过 RR 将任务均匀分配到各节点中,但是不同的任务对于节点
                 计算资源的需求有所差异,如果节点的计算资源无法满足任务的需求,则会导致节点资源溢出与集群计算延迟
                 升高的问题,进而影响集群的性能,并产生高能耗的问题.因此,通过研究任务调度优化策略从而最大化利用
                 Storm 集群的实时计算能力,是目前亟待解决的问题.其次大多数任务调度优化策略主要通过迁移计算负载来
                 提高集群性能,但是无法对降低流式处理的高能耗带来帮助.因此,本文通过降低集群节点间的通信开销,在减
                 少集群计算延迟的基础上,有效节约了能耗.
                    本文针对上述问题,其主要工作如下.
   271   272   273   274   275   276   277   278   279   280   281