1.点击调试,跳转到Mapper
2.进入setup(context);对程序初始化
3.初始化结束
4.进入while后
5.强制进入map()方法观看:getCurrentKey()
6.然后出去,回到while
7.强制进入getCurrentValue()
8.退出
9.再进入,就到了WordCountMapper的map方法里面
10.往下依次执行两行,得到数据中的第一行内容<key,value>,key偏移量
第二行运行后得到的是value的值,即第一行的内容:“pcz pcz”
11.对这一行数据用空格分隔,得到两个值,所以接下来要循环遍历两次
12.循环遍历,封装k的值(第一次循环遍历)
13.传给context()
14.第二次遍历循环,封装第二个"pcz"
15.传给context()
16.第一行内容完成,跳出循环
17.跳出之后回到Mapper(相当于第一行pcz这一行已经执行完了)
18.
(1)进入while
(2)强制进入map
(3)进入后
(4)退出
19.然后进到WordCountMapper,与步骤9~16一样对后面的每一行数据进行操作,(第1行和第2行内容回车和换行各算一个偏移量)《一共有7行,所以执行了7次map》
20.数据运行完成之后,返回到Mapper的cleanup
map阶段结束后的数据
21.map阶段结束,进入到reduce阶段
22.下一步进入到while,然后进入到reduce
23.进入到WordCountReducer
24.累加v的值
25.“fighting”,有两个,所以再次进入for遍历循环,得到sum的值为2
26.累加结束后跳出
27 .返回到Reducer(执行5次reducer,因为mapper结束后有5行数据)
28.到cleanup(context),结束
29.进入到相关目录查看结果