一、背景
- 后续业务可能涉及大数据,虽说Hadoop权威指南书看了大半,但是后续比较多的代码示例,如果不自己亲手搭下环境,就没法去深入理解这些原理和经验,直白点就是看不懂咯;
- 之前其实有搭过CDH环境,但是觉得这样对Hadoop了解不够深入,所以刚好借此机会先把Hadoop的原理和机制搞清楚。
二、计划
- 之前的CDH集群是在个人MacPro中虚拟出来的虚拟机中搭建的,经常出现内存不够用的情况,各种启动失败;
- 现在先不考虑集群,单单搞清楚Hadoop机制即可;
- 鉴于上述原因,准备直接在本机(Win10)搭建一个单机版的Hadoop;
- Hadoop版本众多,于是选择了当前的最新版3.2.1,一个坑爹的版本,后续又换成了新出的3.1.3版本。第一次看到先出3.2.1,再出3.1.3的奇葩事情。
三、步骤
- 下载hadoop-3.1.3源码版本hadoop-3.1.3/hadoop-3.1.3-src.tar.gz,WinRAR可以正常解压;
注意:
1) 选择源码版本是因为二进制版本还需要去找对应的Windows底层库,底层库最好自己编一遍
2)Hadoop 3.2.1版本存在很明显的BUG,按照指导配置好后,运行时,会抛出如下异常:java.lang.UnsupportedOperationException,解决办法就是升级到3.1.3这个稳定版本 - 二进制版本需要依赖本地库,需要编出winutils。此处直接给出编译出可运行的windows包的方法;
- 编译完成后,直接在hadoop-dist\target\获取可用的二进制包:
- 直接按照Hadoop官方给出的配置去修改;
- 把hadoop的bin目录和sbin目录配置到Path环境变量中,分别执行命令:
start-dfs.cmd
start-yarn.cmd
- 运行效果:
四、总结
- hadoop 3.2.1版本让我纠结了好久,还好最后知道是它的BUG所致,找到这个原因后,再去试其它版本,非常容易就成功了;
- 很多资料很杂很乱,需要有针对性的筛选和汇总,最终才能达成自己的目的。
五、参考
1: https://stackoverflow.com/questions/58461455/failed-to-start-namenode
2: https://blog.lindafeng.com/2018/09/20/%E5%9C%A8-Windows10-%E4%B8%8B%E7%BC%96%E8%AF%91-Hadoop3-1-1-%E6%BA%90%E7%A0%81/
3: https://blog.youkuaiyun.com/MoodStreet/article/details/98972784
4: https://stackoverflow.com/questions/58461455/failed-to-start-namenode
5: https://cwiki.apache.org/