本文主要参考的文章
http://toodey.com/2015/08/10/hadoop-installation-on-windows-without-cygwin-in-10-mints/
一、准备工作:
1、jdk版本:jdk1.8.0_151
2、设置JAVA_HOME: C:\Program Files\Java\jdk1.8.0_151
3、hadoop版本:hadoop-2.7.3
download 链接如下:
https://archive.apache.org/dist/hadoop/common/
4、设置HADOOP_HOME: E:\work\cygwin\usr\local\hadoop-2.7.3
5、下载 hadooponwindows(重要)
地址:https://github.com/sardetushar/hadooponwindows
6、将上述下载的bin文件夹和etc/hadoop文件夹覆盖到hadoop-2.7.3文件夹(以防万一,先备份一下原来的bin目录和etc/hadoop目录)
二、配置文件修改:
按照自己本地环境,相应的修改配置文件,可参考文章
http://blog.csdn.net/tornadojava/article/details/56013420
三、启动过程:
1) cmd下输入命令: hadoop namenode -format
2) 切换到 E:\work\cygwin\usr\local\hadoop-2.7.3\sbin 目录下,执行start-all.cmd,本以为会按照参考的文章,success,但是我还是想多了,执行出错,报错如下:
ClassNotFoundException : org.apache.commons.collections.Predicate
四、解决问题:
1) 确保依赖的jar包中是否完整,核对后发现在\hadoop-2.7.3\share\hadoop\common\lib\ 目录下,存在jar包 commons-collections-3.2.2.jar, 如图:
很无语,这不是有吗?为嘛找不到啊?
2) 尝试下载不同版本的commons-collections-xxx.jar, 地址如下:
http://commons.apache.org/proper/commons-collections/download_collections.cgi
替换之后,依然是class not found Exception....
3) 自行百度了一下,这个org.apache.commons.collections.Predicate 是干啥的,参考如下:
http://blog.csdn.net/ffm83/article/details/41892861
然而并没有什么卵用,问题依然解决不了。。。
4) 此时已经过去2个多小时了,内心这个乱啊,揪心啊,看着很简单的问题,为嘛就解决不了呢,还是静下心来,仔细想想吧,忽然灵机一动,既然它在这个目录下找不到,我何不放到jdk/jre/lib/ext 路径下呢,于是有了这一幕
5) 然后抱着试一试的心态,重新运行start-all.cmd,结果呢?你猜:
问题成功得到解决,通过jps查看进程,NameNode 、DataNode都已启动。
6) 好高兴啊,终于可以安心睡觉了,大家晚安啦,附上RM UI截图: