环境:centos5.5, hadoop 2.2.0
问题1. No route to host。
分析:引起这个错误有两个原因, 一个是因为防火墙,另一个是因为hadoop不支持IPV6,但是你机器上的IPV6 开着
解决方案:关闭防火墙,命令如下 sudo service iptables stop. 注意你需要在你需要关闭cluster上每台机器的防火墙.
关闭IPV6支持. 编辑 /etc/sysconfig/network,检查是否有IP_V6=Yes, 如果有,把Yes改成No
问题2:unkown host
destination host is: (unknown)
分析:没有配置hostname, 或者hostname的IP地址不正确,或者hostname在不同的配置文件中冲突
解决方案:
检查 /etc/hosts中的hostname, 检查IP地址是否正确,如下
检查/etc/sysconfig/network中的hostname是否配置正确
用hostname 命令检查hostname是否正确
其实最重要的还是去看日志,下面讲一下各个hadoop各个组成部分的日志
1. NameNode的log
hadoop-hadoop-namenode-robinson.nameNode.log
2.resourceManager的log
yarn-hadoop-resourcemanager-robinson.nameNode.log
3.NodeManager 的log
yarn-hadoop-nodemanager-robinson.nameNode.log
4. Datanode的log
hadoop-hadoop-datanode-robinson.dataNode1.log
另外一个调试的方法就是用jps命令查看当前都有什么java任务在运行.
这个命令式jdk自带的,如果提示没有这个命令,你需要把你的jdk的bin加到Path中
问题3: Could not resolve hostname java: Name or service not known
64 bit
分析:出现这个问题,主要是因为hadoop 默认的native library 是为32 的系统编译的
解决方案:
在/etc/profile 中加入下面两句话
export HADOOP_COMMON_LIB-NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"