013 MapReduce八股文的wordcount应用

一:Mapreduce编程模型

1.介绍

  解决海量数据的计算问题。

  》map:映射

  处理不同机器上的块的数据,一个map处理一个块。

  》reduce:汇总

  将map的结果进行汇总合并

  

2.一个简单的MR程序

  map

  reduce

  input

  output

 

3.在处理中,格式的流向

  《key,value》

 

4.需要思考的问题

  处理的数据是什么样的

  map的输出格式

  reduce的输出数据格式

 

二:完成Wordcount的程序

1.数据的输入格式说明(默认方式)

  Hadoop Yarn

    》key:代表偏移量

    》value:这一行的值

    》<0,Hadoop Yarn>

 

2.map处理的数据格式

  Hadoop Yarn

  Hadoop Spark

  分割单词

  每出现一次就这样处理一下

  <Hadoop,1>   <Yarn,1>

  <Hadoop,1>  <Spark,1>  

  

3.reduce处理的数据格式

  将相同key的value值加在一起就是单词出现的次数

 

4.新建包以及类

  

 

5.将程序分成三块的框架

  Mapper类,Reducer类,Driver的run方法

  

  

 

3.将map与reduce相结合,并在main中运行

  分为四大部分:input,output,mapper,reducer

  

 

4.Mapper类

  将value转化为字符串

  使用空格分隔

  使用context输出键值对。

  

5.Reducer类

  

 6.在main()中写入文件操作系统的路径。

  

 7.结果

  

  

8.出现的结果有些问题,因为没有计数。

  

  IntWritable(1),其参数为1.表示每出现一次就记录一次。

9.最新的结果

  

三:打包在yarn上运行

10.因为需要把jar分发到节点上,所以需要修改

  

11.打jar包

  

12.选择jar包的路径

  

13.选择jar运行的主类

  

14.运行jar在yarn上

  

15.运行结果

  

16.在yarn的管理界面上看

   

17.在Configuration中search一下mapper

  

  同样可以reduce,或者fileoutput等查阅一些参数。

原文地址:https://www.cnblogs.com/juncaoit/p/5940281.html