CentOS6.8下Hadoop2.7.2怎么运行自带的wordcount程序
1 准备工作
1.1 创建输入输出路径
首先在hdfs中创建数据目录,用来指定运行wordcount程序的输入输出路径。Hadoop命令在hadoop文件夹下的bin目录下,可通过如下命令查看:
命令:ll /usr/local/hadoop/bin
查看结果如图1所示:
图1 查找hadoop命令
(1)创建文件上传目录
1)首先进入到hadoop文件夹下(命令:cd /usr/local/hadoop);
2)创建目录“/data/wordcount”,用来存放hadoop自带的wordcount例子的数据文件。
命令:bin/hadoop fs -mkdir -p /data/wordcount (创建上传文件目录)
命令:bin/hadoop fs -ls / (查看创建的文件目录)
命令操作结果如图2所示:
图2 创建文件上传目录
(2)创建结果输出目录
1)创建目录“/output”,用来存放运行Mapreduce任务后输出的结果文件。
命令:bin/hadoop fs -mkdir -p /output/ (创建输出结果文件存放目录)
命令:bin/hadoop fs -ls / (查看创建的文件目录)
命令操作结果如图3所示:
图3 创建结果输出目录
1.2 创建本地输入文件
命令: sudo vi /usr/inputword
输入文件内容,如图4所示:
图4 创建本地输入文件
文件创建完成之后可通过命令“cat /usr/inputword”查看文件内容,如图5所示:
图5 查看本地文件内容
2 上传文件
(1)将上述创建的本地文件上传到HDFS中。
命令:bin/hadoop fs –put /usr/inputword /data/wordcount/
注意:当需要多次执行wordcount程序时,如果不需要保留前一次上传到/data/wordcount/目录下的本地文件inputword,可将其删除,然后直接修改本地文件inputword里面的内容,再重新上传到/data/wordcount/目录下。删除上传到/data/wordcount/目录下的本地文件inputword文件的命令为:
bin/hadoop fs –rm /data/wordcount/inputword
如果需要保留每次执行时上传到/data/wordcount/目录下的本地文件,可以重新创建新的本地文件,只要保证每次创建的本地文件名称不相同即可,然后将不同名的本地文件重新上传到HDFS中。
(2)完成上传后可查看文件情况
命令:bin/hadoop fs -ls /data/wordcount
(3)还可查看上传到HDFS中的文件的内容
命令:bin/hadoop fs -text /data/wordcount/inputword
执行结果如图6所示:
图6 上传文件执行结果
3 运行wordcount例子
3.1 找到examples例子
运行Hadoop自带的wordcount首先需要找到examples例子(hadoop-mapreduce-examples-2.7.2.jar),该例子位于Hadoop文件夹下的“/share/hadoop/mapreduce”目录下。可通过如下命令查看:
(1)直接在根目录下查看:
命令:ls /usr/local/hadoop/share/hadoop/mapreduce
查看结果如图7所示:
图7 在根目录下查找examples
(2)进入Hadoop文件目录下查看(我的Hadoop文件夹在“/usr/local”目录下):
命令:1)cd /usr/local/hadoop
2)ls share/hadoop/mapreduce
查询结果如图8所示:
图8 在Hadoop文件目录下查找examples
3.2 运行hadoop自带的wordcount程序
命令:
bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/
hadoop-mapreduce-examples-2.7.2.jar wordcount /data/wordcount /output/wordcount
注意:此处的输出目录output下的输出结果文件名wordcount不是固定的,在执行不同的输入文件时可相应地更改为不同的文件名称。避免因同名而发生冲突,导致最新上传的本地文件得不到执行,而只保留之前的执行结果。
程序运行信息如图9所示:
图9_1 程序运行信息
图9_2 程序运行信息
图9_3 程序运行信息
图9_4 程序运行信息
3.3 查看执行结果
命令:bin/hadoop fs -text /output/wordcount/part-r-00000
显示结果如图10所示:
图10 程序执行结果
注意:此处的wordcount是指执行wordcount程序时指定的输出目录下的输出结果文件,可通过修改此文件名来显示执行不同文件各自所得的输出结果。
补充说明:完成所有的操作后如果不想保留输入输出目录,可将其一一删除,命令如下:
删除输入文件目录:bin/hadoop fs -rmr /data
删除输出文件目录:bin/hadoop fs -rmr /output
执行上述两条命令后可通过如下命令查看到显示结果中只剩下tmp文件目录:
bin/hadoop fs -ls /