本文从一个小白在安装hadoop遇到的各种困难和错误说起,也希望得到大神的指点。
首先hadoop更新很快,最新的是hadoop2.5.1,因此就介绍下在安装2.5.1时遇到的各种困难。
如果直接准备在系统上安装binary版本的,可以参考http://www.cnblogs.com/kinglau/p/3270160.html。在下载好hadoop文件时,一定要注意下载的hadoop版本是否与本机的系统版本相对应,如32bit的还是64bit的,否则在执行start-all.sh时会报错。我就报了如下错误:
后来前进到bin的子目录下,发现根本就没有winutils.exe这个文件,原因是下载的hadoop是linux版本的,因此想要在windows上跑,最好重新编译源码,因此下载源码文件进行编译。
hadoop源码编译:
hadoop源码编译需要的安装包见:http://blog.csdn.net/u010908524/article/details/38538893
如果是win7 32bit的系统最好参见这个安装过程:http://www.cnblogs.com/smartbooks/p/3694760.html
在编译过程中遇到的问题:
1、如果遇到在下载过程中的错误或是有“网络”二字的错误或是“无法获得源”等,都是网络不好,在用mvn编译过程中,下载超时导致,多重试几次。
2、如果在编译时,遇到如下错误:
即:hadoop-common:Command execution failed. 那是在执行hadoop中的某些文件需要管理员取得所有权,所以命令执行失败。解决方法:
右键单击”D:\hadoop-2.2.0“文件夹,选择”管理员取得所有权“。否则编译过程中可能会发生”拒绝访问“错误(右键没有显示该菜单的。
3、如果编译完成,并且到达:BUILD SUCCESS。建议将hadoop-dist\target下的hadoop-2.5.1.tar.gz文件解压后,到其bin文件下执行winunits.exe。如果报错:
说明你在编译时没有选择与系统一致的版本见http://www.cnblogs.com/smartbooks/p/3694760.html中关于设置PlatForm=Win32的各种修改。
4、如果上述都成功后在cmd.exe启动hadoop/sbin/下的start-all.cmd会出现如下结果
弹出4个窗口,运行jps查看当前java进程有五个,说明成功了,恭喜。
但是如果切换到cygwin下执行时,会报:
这是因为在hadoop文件中没有添加JAVA_HOME环境,而在cmd.exe运行时,用的是windows下的环境变量设置,所以没错。因此在hadoop文件夹中找到hadoop-env.sh文件将export JAVA_HOME=${JAVA_HOME}修改为export JAVA_HOME=${JAVA_HOME-“D:\hadoop-2.5.1”}则完成。
但是在cygwin运行时,仍会报:
且运行jps时,只有jps一个进程,至今仍没找到毛病,如果有大神知道原因还望赐教。
最后希望对大家有帮助。