刚刚研究了一下haoop官网单词计数的例子,把详细步骤解析贴在下面:
准备工作:
1、haoop集群环境搭建完成
2、新建一个文件hello,并写入2行单词,如下:
[root@CentOS hadoop-2.6.0]# vi hello
hello you
hello me
3、把文件传到hdfs根目录下:
[root@CentOS hadoop-2.6.0]# bin/hdfs dfs -put hello /
查看文件是否导入成功
[root@CentOS hadoop-2.6.0]# bin/hdfs dfs -text /hello
hello you
hello me
4、打开eclipse,如果你之前练过JavaAPI操作hdfs,那么在原来项目中直接添加MapReduce的jar包就行了,Maven项目直接添加依赖就好。
jar包在之前搭建Windows的hadoop环境下的C:\Program Files (x86)\hadoop-2.6.3\share\hadoop\mapreduce下的所有jar和此文件夹下lib中的所有jar.
如果之前没做过hdfs练习,那么其他jar请参考我的前几篇文章Hadoop入门(三)。
准备工作做好了,下面就开始编码,代码中我注释的很详细:
◆执行步骤:
1. map
任务处理
1.1 读取输入文件内容,解析成key、value对。对输入文件的每一行,解析成key、value对。每一个键值对调用一次map函数。
1.2 写自己的逻辑,对输入的key、value处理,转换成新的key、value输出。
1.3 对输出的key、value进行分区。
1.4 对不同分区的数据,按照key进行排序、分组。相同key的value放到一个集合中。
1.5 (可选)分组后的数据进行归约。