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类

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MapReduce是一种用于分布式计算的编程模型和算法。它通常用于处理大规模的数据集,可以在多台计算机上并行执行。在实验中,我们使用MapReduce框架来解决一些复杂的计算问题。 在实验中,我们首先需要定义一个输入和输出的数据集。输入数据集可以是一个包含大量数据的文件或者一个数据库表。输出数据集则是我们要得到的计算结果。 接下来,我们需要编写一个Map函数和一个Reduce函数。Map函数将输入数据集进行切分,每个切分后的数据块被分配给一个计算节点。Map函数会将切分后的数据块进行处理,并将处理结果进行键值对的形式输出。这些键值对将作为输入传递给Reduce函数。 Reduce函数将Map函数输出的键值对进行分组,并根据键值对中的键执行一些聚合计算。最终的计算结果将作为输出返回。 在实际操作中,我们可以使用Hadoop平台来实现MapReduce。Hadoop是一个开源的分布式计算框架,提供了MapReduce的实现和管理工具。我们可以将输入数据集存储在HDFS中,然后通过Hadoop的命令行工具或者编写Java程序来执行MapReduce作业。在作业完成后,我们可以从HDFS中获取输出数据集。 总结来说,MapReduce实验就是使用MapReduce框架来处理大规模数据集的问题。通过定义输入和输出数据集,并编写Map和Reduce函数,我们可以利用分布式计算的能力快速、高效地解决复杂的计算问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值