Hadoop以命令空间的方式对文件进行管理,形式上看上去就是在操作一个文件一样。由于我测试的伪分布式是模式,即以开启五个进程来模拟,所以无法体会到集群的特点。不过还是可
以说是一下的。下面就来玩一下单词统计这样一个小例子吧。
第1步:格式化HDFS,即格式化文件系统,有点像格式化磁盘的意味,总之就是新的工作开始啰!输入以下命令:
hadoop namenode -format
第2步:启动守护进程
start-all.sh
[说明]start-all.sh是hadoop1.2.1/bin下的文件,其实,它是两个文件的组合形式,其真面目是
start-dfs.sh
start-mapred.sh
所以你不嫌麻烦写两次也行。当所有工作执行完毕要退出时,执行stop-all.sh,当然也可以执行
stop-dfs.sh
stop-mapred.sh
第3步:测试文件准备
要玩单词统计,当然要单词文本文件啦。由于我在root用户模式下,所以我选择了在 /root/input文件夹下建立了两个文本,命名为file1和file2,里面随便写入一些单词。
第4步:文件导入HDFS系统
导入HDFS系统?听起来好高端,其实在HDFS下,将/root/input的所有文件,导入一个在HDFS系统下的一个虚拟文件夹中,这个文件夹只能在前台显示出来,好像不能看到具体的文件夹
(至少我在我的电脑上没看到,如果有你一定要告诉我)。我们可以将这个文件夹命名为in,当然你可根据你的喜好给个名字。即执行以下命令:
hadoop dfs -put /root/input in
此命令就将file1和file2写入了in文件夹中,你可以用以下命令来测试:
hadoop dfs -ls ./in/
看看输出了什么东东。
第5步:启动单词统计程序
执行命令
hadoop jar /usr/local/hadoop/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount in out
其中,wordcount是命令,out是个与in同处于HDFS下的一个文件夹,用于存储上述命令的输也结果。
这时如果你再输入以下命令:
hadoop dfs -ls ./out
就可以看到out中有个文件,名为part-r-00000
第6步:显示结果
显示结果命令如下:
hadoop dfs -cat ./out/part-r-00000
就会见到相应的单词统计结果啦!
小结:
Hadoop的命令行模式,文件目录模式,环境变量的设置好像都继承了linux的风格,所以只要略微懂点linux,hadoop的一些语言就容易理解了。最后,给大家列举几本参考书,希望大家能快速入门,共同进步!
[1] 鸟哥 著,王世江 改编,《鸟哥的Linux私房菜—基本学习篇(第三版)》,人民邮电出版社,2010.
[2] 鸟哥 著,《鸟哥的Linux私房菜—服务器架设篇(第三版)》,机械工业出版社,2013.