首页 > 其他 > 详细

Hadoop下面WordCount运行详解

时间:2014-05-10 01:52:33      阅读:516      评论:0      收藏:0      [点我收藏+]

单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为MapReduce版"Hello World",该程序的完整代码可以在Hadoop安装包的"src/examples"目录下找到。单词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数,如下图所示。

bubuko.com,布布扣

现在我们以"hadoop"用户登录"Master.Hadoop"服务器。

1. 创建本地的示例数据文件:

依次进入【Home】-【hadoop】-【hadoop-1.2.1】创建一个文件夹file用来存储本地原始数据。

bubuko.com,布布扣

并在这个目录下创建2个文件分别命名为【myTest1.txt】和【myTest2.txt】或者你想要的任何文件名。

分别在这2个文件中输入下列示例语句:

bubuko.com,布布扣

bubuko.com,布布扣

2. 在HDFS上创建输入文件夹

呼出终端,输入下面指令:

bin/hadoop fs -mkdir hdfsInput

执行这个命令时可能会提示类似安全的问题,如果提示了,请使用

bin/hadoop dfsadmin -safemode leave

来退出安全模式。

当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结 束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。

意思是在HDFS远程创建一个输入目录,我们以后的文件需要上载到这个目录里面才能执行。

3. 上传本地file中文件到集群的hdfsInput目录下

在终端依次输入下面指令:

cd hadoop-1.2.1

bin/hadoop fs -put file/myTest*.txt hdfsInput

bubuko.com,布布扣

 

4. 运行例子:

在终端输入下面指令:

bin/hadoop jar hadoop-examples-1.2.1.jar wordcount hdfsInput hdfsOutput

注意,这里的示例程序是1.2.1版本的,可能每个机器有所不一致,那么请用*通配符代替版本号

bin/hadoop jar hadoop-examples-*.jar wordcount hdfsInput hdfsOutput

应该出现下面结果:

bubuko.com,布布扣

Hadoop命令会启动一个JVM来运行这个MapReduce程序,并自动获得Hadoop的配置,同时把类的路径(及其依赖关系)加入到Hadoop的库中。以上就是Hadoop Job的运行记录,从这里可以看到,这个Job被赋予了一个ID号:job_201202292213_0002,而且得知输入文件有两个(Total input paths to process : 2),同时还可以了解map的输入输出记录(record数及字节数),以及reduce输入输出记录。

查看HDFS上hdfsOutput目录内容:

在终端输入下面指令:

bin/hadoop fs -ls hdfsOutput

bubuko.com,布布扣

从上图中知道生成了三个文件,我们的结果在"part-r-00000"中。

使用下面指令查看结果输出文件内容

bin/hadoop fs -cat output/part-r-00000

bubuko.com,布布扣

(注意:请忽视截图指令中的3)

输出目录日志以及输入目录中的文件是永久存在的,如果不删除的话,如果出现结果不一致,请参考这个因素。

Hadoop下面WordCount运行详解,布布扣,bubuko.com

Hadoop下面WordCount运行详解

原文:http://www.cnblogs.com/madyina/p/3708153.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!