月度归档:2011年12月

编译Hadoop的WordCount例子错误解决方案

错误提示:

  • 无法访问 org.apache.commons.cli.Options
  • 未找到 org.apache.commons.cli.Options 的类文件
  •  String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();

解决方案:

这是因为编译的时候缺少了lib/commons-cli-1.2.jar,所以只要添加这个jar就可以了,两个jar之间用冒号:,命令如下,其中playground/src/WordCount.java为你的WordCount.java的路径

javac -classpath hadoop-core-0.20.204.0.jar:lib/commons-cli-1.2.jar \
playground/src/WordCount.java -d playground/classes

启动Hadoop后没有Datanode

错误提示:

  • There are no datanodes in the cluster
  • Error Recovery for block null bad datanode[0] nodes == null….could only be replicated to 0nodes,instread of 1

系统类型:

  • Ubuntu 10.10

解决方法:

问题就在于ubuntu10.10每次开机后会在/etc/hosts自动生成一行代码:127.0.0.1 localhost localhost.local,而ubuntu10.04版本则不会。在hadoop中,由于127.0.0.1与主机绑定,导致datanode一直 试图链接namenode而连接不上,只要开机后把/etc/hosts 下的127.0.0.1 localhost localhost.local删除即可,如果找不到这一行,就删除写着Network Manager的那一行。
所以ubuntu10.10的hadoop用户注意了,有可能就是这个问题导致的启动hadoop后没有datanodes