1、问题:
一个master节点,一个slave节点,start-all.sh启动后,slave节点的datanode进程启动后关闭。查看datanode节点上的log信息,如下:
2、分析:
从日志信息可得是因为版本不一致导致的,无法获得namenode的版本。
经分析,是因为之前在master节点利用ant进行了fuse-dfs的编译,在hadoop的home目录下生成了build目录,而当hadoop启动时会优先选择build目录下的版本,build目录内容如下:
jar包名与原来的不一样了,多了SNAPSHOT字样。
3、解决方法:
其中一个解决方法是将maste节点的build目录拷贝到slave节点一份,可执行如下命令:
scp -r build root@Slave1.Hadoop:/home/zhangjianshun/hadoop-1.0.4/
再次start-all.sh启动hadoop,通过jps查看,datanode运行正常。
参考链接:
http://www.linuxidc.com/Linux/2012-07/65262.htm