Mapreduce实验报告

实验目的:
MapReduce原理及操作;
编程调试wordCount程序;
生成jar包,在虚拟机上运行
1、MapReduce原理
Ma和 Reduce,当向 MapReduce框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map任务,然后分配到不同的节点上去执行,每一个MaD任务处理输入数据中的一部分,当Ma0任务完成后,它会生成一些中间文件,这些中间文件将会作为 Reduce任务的输入数据。 Reduce任务的主要目标就是把前面干个Ma的输出汇到一起并输出。
2、Map过程
每个输入分片会让一个map任务来处理,默认情况下,以HDFs的个块的大小(默认为640)为一个分片,当然我们也可以设置块的大小。mao轴出的结果会暂且放在一个环形内存缓冲区中(该缓冲区的大小默认为100,由io.sort.mb属性控制),当该缓冲区快要溢出时(默认为缓冲区大小的80%,由io.sort. spill percent属性控朝),会在本地文件系统中创建一个益出文件,将读缓冲区中的数据写入这个文件。

3、Reduce过程
Reduce会接收到不同map任务传来的数据,并且每个map博来的数据都是有序的。如果 reduce端接受的数据量相当小,则直接存储在内存中(缓冲区大小由 marred.job. shuffle. merge. percent属性控制,表示用作此用途的堆空间的百分比),如果数据量超过了该缓冲区的一定大小比例(由 marred.job. shuffle. merge. percent决定),则对数据合并后溢写到磁盘中。
4、运行wordcount程序
WordCountMapper类
WordCountReduce类
WordCountDriver类
Mapreduce实验报告_第1张图片
Mapreduce实验报告_第2张图片
Mapreduce实验报告_第3张图片
Mapreduce实验报告_第4张图片
Mapreduce实验报告_第5张图片
Mapreduce实验报告_第6张图片
导出jar包
利用前面创建的HDFSTest项目里面的HDFSFileExist.java类成功导出MapReduce程序,上传到Linux中,和前面的wordcount程序一样,Hadoop jar +jar名 运行。

你可能感兴趣的:(Mapreduce实验报告)