MapReduce计算模型及其在水产农业中的应用

2019-08-07 02:02唐峰杜宏宇蔡家轩韩佳琦孙鸿羽
科技视界 2019年17期
关键词:大数据

唐峰 杜宏宇 蔡家轩 韩佳琦 孙鸿羽

【摘 要】在所有大数据技术中,MapReduce由于在批处理大规模数据方面的卓越性能,已经成为现今大数据的核心算法,但使用者对MapReduce的理解仍是不全面的,甚至是错误的。基于此,本文对MapReduce进行了客观分析并提出了在水产行业中的应用前景。

【关键词】MapReduce;水产行业;大数据

中图分类号: S951.2;TP311.13 文献标识码: A 文章编号: 2095-2457(2019)17-0115-002

DOI:10.19694/j.cnki.issn2095-2457.2019.17.054

MapReduce Computation Model and its Application in Aquatic Agriculture

TANG Feng DU Hong-yu CAI Jia-xuan HAN Jia-qi SUN Hong-yu

(School of mechanical engineering,suzhou university of science and technology,Suzhou Jiangsu 215009,China)

【Abstract】Among all the big data technology,MapReduce has been Core Algorithm Ways in big data due to its excellent performance in batching large-scale data.But the understanding of users are one-sided,even its wrong.On the basis,this paper makes an Objective analysis for MapReduce and puts forward the application prospect in Fishing industry.

【Key words】MapReduce;Big Data;Aquatic agriculture

0 前言

我国的水产农业正在向“农业4.0”方向发展。MapReduce计算范型作为一种典型的批处理计算范型,已经在很多领域获得了极为广泛的应用。与传统的MPP架构相比,MapReduce更适合非结构化数据的ETL处理类操作,且其可扩展性及容错性明显占优[3]。MapReduce提供了简洁的编程接口及完善的容错处理机制,使得大规模并发处理海量数据成为可能。因此充分了解MapReduce已成为应用开发者的必然选择。

MapReduce分布式计算框架在2004年被首次提出,它不单单是一种分布式计算模型,同时也是以大规模商业电脑(成千台机器)为基础的一整套批处理计算框架。MapReduce可以很轻易处理即使PB级规模的数据,并通过提供简单应用接口的方式,使得在设计分布式计算系统时所需要考虑的,如系统容错以及任务调度等复杂问题很好协调封装起来,这样就大大降低了应用开发者的工作强度与难度,只需保证业务逻辑无错误即可完成任务。

1 MapReduce计算模型

在处理各种各样的大数据问题时,会要求程序员去处理与分布式计算相关的种种让人头疼的问题,比如,如何使计算并行化,如何处理失败等。这些问题让原本简单直接的任务变得复杂,而MapReduce计算模型的提出,则是对所面臨的大数据问题进行分析和总结后所作的一次天才的抽象。MapReduce把面临的分布式计算问题带来的复杂度解耦成两个部分。

(1)经MapReduce计算模型抽象的计算任务。

(2)支持MapReduce的分布式计算框架。

通过这种抽象,业务逻辑的实现者只需要按照MapReduce计算模型来实现自己的业务逻辑,并不需要关心分布式计算所带来的种种问题。计算框架则会考虑分布式计算的种种挑战,由有经验的精通分布式计算的程序员来实现。

MapReduce作为一个普遍适用的分布式计算模型,其核心是把任务分解成一个个子任务,通过计算出子任务的结果,再加以合并来得出最终结果。MapReduce计算模型框架构架如图1所示。

从图1可以看出,当MapReduce的调用函数在被用户程序执行时,其运作流程如下:

(1)MapReduce框架通过把应用输入的数据划分为若干个数据块(大多为64MB),就能够运行位于集群中不同机器上的各个程序。

(2)在这些程序当中,存在着一个且唯一一个主控的Master程序和若干工作程序(Worker),主控程序的职责是分配Map或Reduce任务给工作程序,进行宏观的调控。在整个应用当中,有M个Map任务和N个Reduce任务,MN的值是由开发者自行指定的。Master的职能就是把任务统一协调,并分配给各个空闲的工作程序。

(3)当工作程序得到Map任务时,便开始读取分析对应的数据块内容,继而得出Key或Value记录数据,将其发送给用户自定义的Map函数,同时内存中会对函数输出的中间结果数据进行缓存。

(4)本地磁盘不断地接收缓存数据中的中间结果,并且在写入磁盘的过程中,每个中间结果都会被分割成N份,N是Reduce的个数。一般是用Key对N通过哈希取模的方式来得到切割函数,N份中间数据对应着每个Reduce函数所需的数据分片零时文件。当对应数据块的处理完成之后,将其N个临时文件的位置发送给主控程序,再由主控程序将其转交给Reduce任务的工作程序。

(5)当主控程序的指令下达到某个Reduce任务的工作程序时,工作程序将Map任务产生的M个数据文件远程拉取到本地。当M个数据文件都拉取成功之后,根据中间数据的Key,Reduce任务会对所有记录进行排序。通过这样的方式,将相同Key的记录按照顺序聚合在一起。

(6)在经过排序之后,用户自定义的Reduce函数会接收到Key及其对应的多个Value,Reduce函数运行得出结果后将结果追加到这个Reduce任务对应的结果文件末尾。

(7)当所有任务都完成之后,主控程序便会唤醒应用程序,此时,MapReduce调用结束,进入代码执行阶段。

2 MapReduce在水产大数据的应用

2.1 MapReduce的开源实现

大数据处理解决的问题主要分为两个方面:海量数据的存储及计算。针对上述问题,出现了一系列的解决方案,其中开源框架中的Hadoop最为典型。

2006年Docu Cutting开源了 Hadoop,先后推出了Hadoop1.0、Hadoop2.0。Hadoop1.0 即第一代Hadoop,其内核主要由 HDFS和MapReduce两个系统组成,其中MapReduce是一个离线处理框架,由编程模型(新旧API)、运行时环境(JobTracker 和 TaskTracker)和数据处理引擎(MapTask和ReduceTask)三部分组成。

Hadoop2.0即第二代Hadoop,其内核主要由HDFS、MapReduce和YARN三个系统组成,其中YARN是一个资源管理系统,负责集群资源管理和调度,MapReduce则是运行在YARN上的离线处理框架。Hadoop2.0系统架构如图2所示。

Hadoop2.0重点改进了以下问题:

(1)针对Hadoop1.0中NameNode制约HDFS的扩展性问题,提出HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时彻底解决了NameNode单点故障问题。

(2)针对Hadoop1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制分开,分别由ResourceManager(负责所有应用程序的资源分配)和ApplicationMaster(负责管理一个应用程序)实现,即引入了资源管理框架Yarn。

(3)Yarn作为Hadoop2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度,不仅限于MapReduce一种框架,也可以为其他框架使用,如Tez、Spark、Storm等。

2.2 MapReduce在水产行业的应用—物流云

目前我国水产品的主要流通方式依旧是以城镇农贸市场为主导的传统模式,流通环节繁多,供应链冗长,大大降低了水产品的流通效率,并增加了流通环节的损耗率。而损耗率的居高不下,恰恰是我国水产品流通的最大痛点。

物流数据由于其数据量过于庞大且数据种类繁多,传统大数据技术根本解决不了这一问题。而对于这种超大规模数据的处理,正是MapReduce计算模型的优势所在。因此,建设一个基于MapReduce的物流云体系已成为解决传统水产品流通模式弊端的不二选择。

物流云服务是一种在网络技术与分布式计算技术的支持下,通过物流云服务平台整合物流资源和客户资源,并按照客户需求管理和颠沛物流资源,为客户定制和提供安全、高效、优质廉价、灵活多变的个性化物流服务的新型物流服务模式。

在云计算环境下,物流资源与物流能力以物流云服务的形式运作。在物流云服务模式下,物流服务具有不同于传统服务模式的特征,主要表现在以下几个方面。

(1)物流服务环境的开放性,使用户根据需要获取服务。

(2)物流资源的虚拟性,使物流资源以云服务的方式运作。

(3)物流服务运作的协同性,使不同的物流服务主体通过写作完成复杂的物流任务。

(4)通过资源、能力虚拟化封装,实现了物流即服务的重大转变。

通过对物流行业各方面的基础需求分析,以及对现阶段国内物流行业的信息化现状的把握,物流云计算服务平台划分为:物流公共信息平台、物流管理平台以及物流园区管理平台三个部分。这三个平台有各自适用的作用层面,物流公共信息平台针对的是客户服务层,拥有强大的信息获取能力;物流管理平台针对的是用户作业层,可以大幅度地提高物流及其相关企业的工作效率,甚至可以拓展出更大的业务领域;物流园区管理平台针对的是决策管理层,可以帮助物流枢纽中心,物流园区等管理辖区内的入驻企业进行规划和布局。

3 结语

水产农业大数据分析和应用是“农业4.0”的关键技术。MapReduce计算模型作为现今大数据处理的核心算法和Hadoop MapReduce的核心,必然会在其发展过程中扫清技术和商业模式的障碍。MapReduce计算模型的应用是大规模并发处理海量数据的重要解决方案。

【参考文献】

[1]王伟.大数据分析——RDBMS与MapReduce的竞争与共生漫谈[J].软件学报,2013,23(7):55-56.

[2]李国杰.大数据研究的科学价值[J].中国计算机学会通讯,2012(9):8-15.

[3]李珏,马晓东,张果谋.大數据分析在用电采集数据分析与智能监测系统的设计与实现[J].电气应用,2015(S1):558-561.

[4]维克托·迈尔·舍恩伯格,肯尼斯·库克耶.大数据时代[M].杭州:浙江人人民出版社,2013.

猜你喜欢
大数据
大数据环境下基于移动客户端的传统媒体转型思路