从本章节你能够学习到:apache
(1)本地模式(local(standaolne) mode):不须要启用任何守护进程,全部程序都在同一个JVM上执行。在独立模式下测试和调试MapReduce程序都很方便,解压以后直接能够运行。很是适合咱们进行测试和开发使用。分布式
(2)伪分布式模式(Pseudo-Distributed Mode):等同于彻底分布式,但全部的守护进程只运行在一台机器上,经过启动不一样的守护进程模拟集群节点。oop
(3)彻底分布式模式(Full-Distributed Mode):Hadoop的守护进程运行在多台机器上(集群)。学习
grep案例是用来进行单词匹配的案例。咱们按照官方教程来走一遍具体流程。测试
一、在hadoop-2.7.2文件下面建立一个input文件夹,并将hadoop的xml配置文件复制到里面:this
# cd /opt/module/hadoop-2.7.2 # mkdir input # cp etc/hadoop/*.xml input/
二、能够看到input目录下拥有差很少5个xml文件,如今咱们想要知道在这些文件夹中究竟有多少个以dfs开头并至少还有一个其余的字母的单词,例如dfsu。只需执行官方为咱们提供的参考jar包结合hadoop命令便可:调试
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
其中:code
三、运行以后,咱们会发如今当前目录下生成了一个output文件夹,进入后发现有2个文件其中一个大小为0,表名运行是否正确,你会看到其名字为'_SUCCESS',另一个,就是咱们想要的输出结果了。查看输出结果:orm
# cat part-r-00000
输出xml
1 dfsadmin
即匹配结果单词有'dfsadmin',匹配次数为1次。
接下来咱们在测试一个简单的统计单词的案例,和grep案例同样,咱们先构建一个输入文件夹,往里面放多个文件,随意的放入各类单词信息。
一、构建输入
# cd /opt/module/hadoop-2.7.2 # mkdir winput # cd winput # touch 1.txt # touch 2.doc # touch 3.xml
别忘了往文件里随便写些单词(有空格分离)
二、执行命令
# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount winput/ woutput
三、执行完成以后,一样来到输出结果的文件夹woutput,查看统计结果:
beautiful 1 best 1 for 1 good 1 haha 3 is 2 item 1 learn. 1 my 1 place. 1 this 2 to 1
能够看到咱们写入的单词的统计信息。
经过以上两个例子,相信你得到了很多经验,好比
-Dmapreduce.input.fileinputformat.input.dir.recursive=true
便可。-Dmapreduce.input.fileinputformat.input.dir.recursive=true只在2.0以后生效。