众所周知,Hadoop有三种运行模式:本地模式,伪分布模式,完全分布模式。挺多教程一上来就给伪分布模式的搭建过程,配置了许多 xml 配置文件,然后自己开始做实验的时候发现各种 FileNotExisted 错误,emmmm,所以还是从大家都推荐的本地模式开始测试,所谓万丈高楼平地起嘛~
其实本地模式非常简单,为了泛化所有的环境测试,让所有小伙伴都能够正确的进行测试,这里安装新的 Hadoop 开始:
1. 首先,从官网下载我们所需的版本(链接在这里),随便下载一个就行了~(不过尽量找比当前时间晚几个月的版本,在windows下有要求!)
这里我使用2.9.1版本,下载完了解压就行了
2. 其次设置一下java路径,因为如果跟我一样默认安装在 Program Files ,中间的一个空格 Hadoop 无法正确解析,需要使用 Windows 自带的短名字(即 `Program Files` 变成 `PROGRA~1` ),设置如下(在第25行):
这个根据各位的 Java 路径进行更改。
3. 如果是 Windows 的朋友,需要设置一下这一步——安装 winutils ,网址如下:winutils,这里使用 gitee 上别人从 github 扒来的代码,如果 github 能快速访问的朋友在 github 自行搜索 winutils 即可,然后找和自己版本对应的下载~
这里我下载 2.9.1 版本,下载完了直接把所有的文件复制到 Hadoop 的 bin 目录,然后直接覆盖原文件即可。
4. 因为本地模式不需要任何的 守护进程 就可以启动,所以直接启动即可。进入 Hadoop 的 bin 目录,先创建一个 input 文件夹,然后输入如下经典测试命令(注意当前目录不能有 output ,如果有就直接删除,否则会报错):
.\hadoop jar ..\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.9.1.jar grep input output 'dfs[a-z.]+'
然后按理就会看到如下界面:
这里仅复制最后几行,如果出现如上界面就表明成功运行了,但是如果出现如下界面:
就说明运行错误,找到上面的第一行,可以发现 FileAlreadyExistsException,就说明 output 已经存在,删除即可,如果有其他问题,找到错误源去网上搜索即可~
最后进入 output 目录,找到 part-r-00000 文件,用记事本打开就能够看到只有一行,即是正确结果。
5. 怎么能不给经典的 wordcount 一个表现的机会:
.\hadoop jar ..\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.9.1.jar wordcount .\input\ output
这里 input 是一个文件夹,里面随便塞几个文件就行了。运行上述代码就能得到正确的结果(理论上如此 o(* ̄▽ ̄*)ブ)。
如上图所示,打开 part-r-00000 得到如下结果(这里只截取一部分):
至此,基本的本地运行模式就测试完了,感谢阅读!