1.Cygwin下的ssh服务启动
需要在cygwin下配置sshd服务。若之前已经设置过sshd,启动时可能会出错:
此时需要先删除sshd服务:sc delete sshd,然后重新运行“ssh-host-config”来设置,但是后面可能出现以下错误:
原因是在前面提示“Do you want to use adifferent name?”的时候选择了否。重新运行配置,然后选择yes,然后重新创建新的用户名并运行密码即可。
2. 伪分布式Hadoop启动
启动时出现NameNode无法启动,地址被占用的情况:“address already inuse”。可以用netstat查看端口占用情况。看到进程ID后,根据ID号去windows任务管理器下面查看,可以看到是PPTV的进程在占用,关掉即可。参考:http://zsybupt.iteye.com/blog/1707200
3. hadoop-eclipse插件的编译(hadoop1.1.1版本)
4. eclipse下build Hadoop错误
解决办法:修改hadoop根目录下的\src\saveVersion.sh文件,把user=`whoami`改成user=`用户名`,或者修改build.xml文件的某处。
参考:http://blog.itpub.net/8183550/viewspace-683859/ 或http://zhengzhuangjie.iteye.com/blog/1582283
继续build,再次出错,如下:
D:\program\cygwin\home\hjy\hadoop-1.1.1\build.xml:618:Execute failed: java.io.IOException: Cannot run program "autoreconf" (indirectory "D:\program\cygwin\home\hjy\hadoop-1.1.1\src\native"):CreateProcess error=2, ?????????
因为hadoop不支持在windows下进行native build。首先尝试安装autoreconf,autoreconf包含在autoconf包中,从http://man.chinaunix.net/linux/lfs/htmlbook/appendixa/autoconf.html 下载autoconf安装包,然后./configure、make、make install,然后检验安装成功了autoreconf。但是依然报上述错误,放弃!
另外一种方法是从build.xml文件着手,删除相关需要native build的target,可以参考:https://ekasiswanto.wordpress.com/2012/09/21/how-to-compile-hadoop-in-windows/ 通过删除所有用到autoreconf的<exec>然后build,成功!
5. eclipse下运行WordCount程序没反应
添加log4j.properties文件,打印出错误日志信息,如下:
2014-12-0915:25:12,336 WARN util.NativeCodeLoader- Unable to load native-hadoop library for your platform... using builtin-javaclasses where applicable
2014-12-0915:25:12,336 ERROR security.UserGroupInformation - PriviledgedActionExceptionas:hjy cause:java.io.IOException: Failed to set permissions of path:\tmp\hadoop-root\mapred\staging\root-1899690988\.staging to 0700
解决办法:修改org.apache.hadoop.fs.FileUtil类中的checkReturnValue方法,去掉方法体并重新编译。参考 http://blog.csdn.net/zwx19921215/article/details/19921579
修改后运行成功。