MapReduce并行编程模型在大数据处理中的应用
2018-11-23
(宿州学院信息工程学院 安徽 宿州 234000)
大数据作为一项技术发展已不再新奇,虽然现在淘汰也很迅速,但是基于大数据技术的应用早几年就非常火热,而且作为一项发展前景广阔的技术,热度目前还会持续上升还不会下降,所以做大数据处理是很有研究价值的。
此次研究目的是将大量的数据进行分析统计利用将该技术在功能上、精确性等方面还有待进一步完善,我们将Hadoop采取在Centos7下将分部式集群搭建完成。启用hdfs来存储数据,将要处理的数据存入hdfs中。在Centos7中安装eclipse及搭建相关java环境,将Hadoop的包导入java项目中。在Hadoop中使用MapReduce类来处理数据。
一、大数据应用情况
数据量越来越大,在大量的数据中发掘有用的信息显得越来越重要。人类的活动越来越依赖数据:(1)人类的日常生活已经与数据密不可分;(2)科学研究进入了“数据科学”时代;(3)各行各业开展工作也越来越依赖大数据手段。
二、MapReduce
(一)MapReduce的概述
MapReduce是一种分布式计算模型,而对于Hadoop来说,MapReduce是一个分布式计算框架。概括来说MapReduce的主要是想是把大的任务分解成很多小的任务,来并执行的这些小的任务,从而达到能能快速处理完这些任务的目的。
(二)MapReduce的组成
MapReduce的组成有两个阶段
map():任务分解。
reduce():结果汇总。
map、reduce这两个函数的形参是key、value。
(三)MapReduce的任务
Map Reduce根据需要有两种任务模式。一个是用Reducer实现的本地模式。另一个是用Runner实现的Yarn模式。其主要任务是在客户端启动一个作业,提交作业到资源管理任务调试请求一个Job ID,将运行所需资源文件复制到HDFS,用多个Map将数据分解处理,再到Reduce里整理处理的数据,存放到HDFS,每隔一段时间完成一次运行。
三、函数
mapper中,定义的map通过处理hive中或者本地的数据解析成键/值对来产生多个键/值对结果。键/值的处理效率是很高的,选择对MapReduce作业的完成效率来说非常重要。键是分组的依据,值是分析的数据。
reduce是将mapper处理的数据作为输入,依次为每个键对应分组执行此函数。reduce函数的输入是键以及此键对应的迭代器。
四、HDFS
(一)HDFS的概述
1.一个HDFS集群是由一个NameNode和若干个DataNode组成。
2.NameNode作为主服务器管理整个文件系统的命名空间和客户端访问操作。
3.DataNode管理存储数据块。
4.文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台datanode上。
5.每一个文件块可以有多个副本,并存放在不同的datanode上。
6.Datanode会定期向Namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量。
7.HDFS的内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来。
五、MapReduce案例
(一)统计单词个数,通过MapReduce处理,对文本内容按行读取
查看文件
[root@hadoop11 ~]# cat /simple/words.txt
all at once
all but
all of a sudden
all over again
all over
运算结果
[root@hadoop11 ~]# hdfs dfs -cat /output14/part-r-0000
a 1
again 1
all 5
at 1
but 1
of 1
over 2
once 1
sudden 1
结束语
社会进步需要大数据、云计算的发展。在推动数据资源共享开放和开发应用上大数据处理技术都占着很大的地位。超大规模计算和海量数据的分析将可以在大数据开发过程中实现,复杂度较高、精密度较高的信息处理都可以在短时间内完成。下一步我们将继续深度研究数据处理,而像分析、成功率计算等都将会更加准确。并且可以根据客户需求高度自由的数据互动,通过分析数模预测进行推送。Hadoop技术虽然已经被广泛应用,不管是在功能上还是稳定性等方面,此技术还有待进一步改进。因此我们不论是在开发的过程中还是升级维护中,都将有新的功能不断地添加和引入。