Hadoop下WordCount程序

1、前言

在以前咱们已经在 CenOS6.5 下搭建好了 Hadoop2.x 的开发环境。既然环境已经搭建好了,那么如今咱们就应该来干点正事嘛!好比来一个Hadoop世界的HelloWorld,也就是WordCount程序(一个简单的单词计数程序).linux

2、WordCount 官方案例的运行

2.1 程序简介oop

 

WordCount程序是hadoop自带的案例,咱们能够在 hadoop 解压目录下找到包含这个程序的 jar 文件(hadoop-mapreduce-examples-2.7.1.jar),该文件所在路径为 hadoop/share/hadoop/mapreduce。spa

咱们可使用 hadoop jar 命令查看该jar包详细信息。执行命令:hadoop jar hadoop-mapreduce-examples-2.7.1.jar.net

wc1

能够看到,该 jar 文件中并不止有一个案例,固然咱们此时只想看看 WordCount 程序,其余的靠边边。那么咱们按照提示,执行命令:hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount 看看有什么东西?
wc2code

根据提示,它说是须要输入文件和输出目录,那么接下来,咱们就准备如下输入文件和输出目录吧。blog

注:其实只须要准备输入文件,不须要准备输出目录。由于 MapReduce 程序的运行,其输出目录不能是已存在的,不然会抛出异常。
这是为了不数据覆盖的问题。请看《Hadoop权威指南》

2.2 准备材料hadoop

为了方便使用该官方 jar 文件,咱们在当前目录下建立一个 input 目录(你也能够在别的目录下建立目录,目录名也能够本身取,喜欢就好),用来存放输入文件。而后准备2个输入文件。以下所示:
wc3开发

由于咱们是使用 HDFS 文件系统的,因此咱们要运行 WordCount 这个 MapReduce 程序的话,须要将文件放入 HDFS 上。所以咱们使用 HDFS 的文件系统命令,在HDFS文件系统根目录下建立一个input目录,用来保存输入文件。执行命令:hadoop fs -mkdir /input
wc4input

注:hadoop fs -mkdir 命令是用来在 HDFS 上建立目录的,相似于Linux下的 mkdir 命令

目录建立好后,咱们须要把刚刚在本地文件系统上准备的输入文件拷贝到 HDFS 上。执行命令:hadoop fs -put input/f*.txt /input
wc5博客

 

2.3 运行程序

准备工做就绪了,那么如今就开始运行程序了。执行命令:hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output

注:hadoop jar hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output详解
- 该命令中 /input 表示使用 HDFS 上根目录(/)下的 input 目录下全部文件做为程序输入
- /output 表示使用 HDFS 根目录下的 output 目录存储程序的输出(该 output 文件,是原本不存在的,会由程序自动建立)

 

从终端能够看到以下命令输出:
wc6

wc7
wc8

 

程序运行完毕,咱们看一下输出都有啥,执行命令:hadoop fs -cat /output/*
wc9

注:hadoop fs -cat 命令功能相似于linux下的 cat 命令

从上面的输出,能够看到该程序将咱们的输入文件中的单词出现状况,进行了统计。都是 key,value 的形式出现的

 

博客转发:

   http://blog.csdn.net/gulu_gulu_jp/article/details/51298164/

相关文章
相关标签/搜索