原文:http://blog.youkuaiyun.com/dr_guo/article/details/50890582
先说点小知识
hadoop fs 使用面最广,可以操作任何文件系统
hadoop dfs和hdfs dfs只能操作HDFS相关的
在上一篇博客中,我们已经成功启动了HDFS和YARN,接下来
先建数据存放目录和结果输出目录
- guo@guo:/opt/Hadoop/hadoop-2.7.2# hdfs dfs -mkdir /data/input
- guo@guo:/opt/Hadoop/hadoop-2.7.2# hdfs dfs -mkdir /data/output
注意:HDFS没有当前工作目录的概念,所有文件元数据都存在namenode节点上,某一个文件可能被拆放到不同机器上,也可能将路径不同的文件放在同一台机器上。所以你在硬盘上是找不到刚才创建的目录的。
//当我执行该指令的时候,一直报错 “”mkdir: `input': No such file or directory“”
到网上查找了很多资料,最终尝试使用:hdfs dfs -mkdir -p /data/input 竟然成功了,不知道-p有什么用,接下来的都能运行了。
将要进行统计的数据上传到刚才创建的存放目录
- guo@guo:/opt/Hadoop/hadoop-2.7.2# hdfs dfs -put test.log /data/input
- guo@guo:/opt/Hadoop/hadoop-2.7.2# hdfs dfs -ls /data/input
- Found 1 items
- -rw-r--r-- 1 root supergroup 1819 2016-03-14 21:17 /data/input/test.log
进入mapreduce目录
- guo@guo:/opt/Hadoop/hadoop-2.7.2# cd /opt/Hadoop/hadoop-2.7.2/share/hadoop/mapreduce/
运行wordcount
- guo@guo:/opt/Hadoop/hadoop-2.7.2/share/hadoop/mapreduce# hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount /data/input /data/output/result
查看result
- guo@guo:/opt/Hadoop/hadoop-2.7.2/share/hadoop/mapreduce# hdfs dfs -ls /data/output/result
- Found 2 items
- -rw-r--r-- 1 root supergroup 0 2016-03-14 22:16 /data/output/result/_SUCCESS
- -rw-r--r-- 1 root supergroup 855 2016-03-14 22:16 /data/output/result/part-r-00000
注意:第一个_SUCCESS是没有任何东西的0B,它只是告诉你运行成功了,结果在part-r-00000中
。
查看统计结果
- guo@guo:/opt/Hadoop/hadoop-2.7.2/share/hadoop/mapreduce# hdfs dfs -cat /data/output/result
- /part-r-00000
- -> 2
- -rw------- 5
- -rw-r--r-- 5
- -rw-rw-r-- 2
- ../ 1
- ./ 1
- .ICEauthority 1
- .Private 1
- .Xauthority 1
- .bash_history 1
- .bash_logout 1
- .bashrc 1
- .cache/ 1
- .config/ 1
- .dbus/ 1
- .ecryptfs 1
- .gconf/ 1
- .gvfs/ 1
- .local/ 1
- .mozilla/ 1
- .presage/ 1
- .profile 1
- .sudo_as_admin_successful 1
- .xinputrc 1
- .xsession-errors 1
- .xsession-errors.old 1
- /home/.ecryptfs/guo/.Private/ 1
- /home/.ecryptfs/guo/.ecryptfs/ 1
- 0 2
- 1 16
这个wordcount没有那么智能,它只是按空格来分辨是不是一个单词的。