Page 214 - “互联网+”背景下政务工作信息化研究与探索
P. 214
“互联网 +”背景下政务工作信息化研究与探索
Research and Exploration on Informatization of Government Affairs under the Background of “Internet +”
MapReduce程序(map reduce job)由客户端提交到集群中的具体专门节点,
根据集群配置及作业的属性等选定运行环境,分mapper和reducer两个阶段处理
数据,键/值对(key-valuepair)是MapReduce的基础数据结构。MapReduce在大
数据处理时,会根据要处理的数据文件及用户编写的map函数首先将数据分割为
多个部分(split),而后为每一个split启动一个map任务(maptask),这些map
任务由MapReduce运行环境调度着分散运行于集群中的一个或多个节点上;每个
mapper执行结束后,都可能会输出许多的键值对,称作中间键值对,这些中间键
值对临时性地存放在某处,直到所有的mapper都执行结束;MapReduce再把这些
中间键/值对依键聚合重新进行分割为一个或多个分组,同一组可以包含一个或
多个键及其对应的数据,MapReduce运行环境会为每个分组启动一个reduce任务
(reducetask),这些reduce任务由MapReduce运行环境调度着运行于集群中的一
个或多个节点上。
MapReduce先进之处还在于它利用执行框架分离了编写并行算法的对象和方
法,程序员不需关注所有底层执行的细节,并能保证MapReduce集群处理能力随
着节点的增加而线性增长,即集群规模增长N倍其处理相同规模数据的时长也会
缩短N倍,使海量数据并行处理被“分割包围、逐个歼灭”。这些正是快速分析
大数据所需要的计算能力。
2.分布式文件系统HDFS
HDFS(如图8-3所示)为MapReduce的计算框架而设计,将数据存储于多个
节点上,采用计算节点与存储节点合二为一的集群模型,极大地降低了数据通
过网络传送的需求。且可以在低成本设备上实现。HDFS的主旨是数据分块与复
制。相对于本地磁盘几KB大的块(block),HDFS中的块要大得多(通常默认
64M)。HDFS存储下来数据主要用于后续的处理分析,其访问模型为“一次写
入、多次读取”;因此,数据在HDFS中存储完成后,仅能在文件尾部附加新数
据,而不能对文件进行修改。HDFS首先访问namenode以确定文件存放位置。对
于客户端请求,namenode将会返回datanode节点号与块号。客户端根据节点号与
块号访问对应的datanode,获取文件数据。需要注意的一点是文件数据传输只发
生于客户端与datanode之间,不经过namenode;客户端与namenode之间只会传输
元数据。
HDFS通常默认将每个数据块在不同机架的机器上存储3份,以确保可靠性、
202

