日期:2014-05-16 浏览次数:20525 次
花了整整一个下午(6个多小时),整理总结,也算是对这方面有一个深度的了解。日后可以回头多看看。
我们都安装完Hadoop之后,按照一些案例先要跑一个WourdCount程序,来测试Hadoop安装是否成功。在终端中用命令创建一个文件夹,简单的向两个文件中各写入一段话,然后运行Hadoop,WourdCount自带WourdCount程序指令,就可以输出写入的那句话各个不同单词的个数。但是这不是这篇博客主要讲的内容,主要是想通过一个简单的Wordcount程序,来认识Hadoop的内部机制。并通过此来深入了解MapReduce的详细过程。在Thinking in BigDate(八)大数据Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解中我们已经很大概梳理一下,Hadoop内部集群架构,并对MapReduce也有初步的了解,这里我们以WourdCount程序来深入的探讨MapReduce的过程。
WourdCount程序就是统计文本中字母的个数
zhangzhen@ubuntu:~/software$ mkdir input
zhangzhen@ubuntu:~/software$ cd input/
zhangzhen@ubuntu:~/software/input$ echo "I am zhangzhen">test1.txt
zhangzhen@ubuntu:~/software/input$ echo "You are not zhangzhen">test2.txt
zhangzhen@ubuntu:~/software/input$ cd ../hadoop-1.2.1/
zhangzhen@ubuntu:~/software/hadoop-1.2.1$ cd bin
zhangzhen@ubuntu:~/software/hadoop-1.2.1/bin$ ls
hadoop slaves.sh start-mapred.sh stop-mapred.sh
hadoop-config.sh start-all.sh stop-all.sh task-controller
hadoop-daemon.sh start-balancer.sh stop-balancer.sh
hadoop-daemons.sh start-dfs.sh stop-dfs.sh
rcc start-jobhistoryserver.sh stop-jobhistoryserver.sh
zhangzhen@ubuntu:~/software/hadoop-1.2.1/bin$ jps(确定Hadoop已经起来了)
7101 SecondaryNameNode
7193 JobTracker
7397 TaskTracker
9573 Jps
6871 DataNode
6667 NameNode
zhangzhen@ubuntu:~/software/hadoop-1.2.1/bin$ cd ..
zhangzhen@ubuntu:~/software/hadoop-1.2.1$ ls
bin data hadoop-minicluster-1.2.1.jar libexec share
build.xml docs hadoop-test-1.2.1.jar LICENSE.txt src
c++ hadoop-ant-1.2.1.jar hadoop-tools-1.2.1.jar logs webapps
CHANGES.txt hadoop-client-1.2.1.jar ivy NOTICE.txt
conf hadoop-core-1.2.1.jar ivy.xml README.txt
contrib hadoop-examples-1.2.1.jar lib sbin
zhangzhen@ubuntu:~/software/hadoop-1.2.1$ bin/hadoop dfs -put ../input in //把文件上传的hdfa中的in目录中,其实这个说法有误
zhangzhen@ubuntu:~/software/hadoop-1.2.1$ bin/hadoop dfs -ls .in/*
ls: Cannot access .in/*: No such file or directory.
zhangzhen@ubuntu:~/software/hadoop-1.2.1$ bin/hadoop dfs -ls ./in/*
-rw-r--r-- 1 zhangzhen supergroup 15 2014-03-22 10:45 /user/zhangzhen/in/test1.txt
-rw-r--r-- 1 zhangzhen supergroup 22 2014-03-22 10:45 /user/zhangzhen/in/test2.txt
注意:Hadoop中是没有当前目录这个概念的。所以上传到hdfs中的文件,我们是不能通过cd命令、ls命令,查看目录中的文件。这里我们通过就是上面和下面命令查看hdfs中文件的方法。
在每个版本中,hadoop-examples-1.2.1.jar的位置不一样,在Hadoop1.2.1版本中,我们hadoop-examples-1.2.1.jar文件是在Hadoop目录中的,这里我们需要把这个hadoop-examples-1.2.1.jar拷贝到/bin 目录中。