在腾讯云上配置Hadoop,namenode一直启动不成功。
cat一下日志,看看发生了什么事:
cat $HADOOP_HOME/logs/hadoop-root-namenode-Namenode.log
发现
FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
java.net.BindException: Problem binding to [Namenode:9000] java.net.BindException: Cannot assign requested address; For more details see: http://wiki.apache.org/hadoop/BindException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
根据http://wiki.apache.org/hadoop/BindException,发现都是端口占用之类的问题。
但是netstat -a | grep 9000发现并不没有。
折腾了很多次,一直以为自己的配置有问题。直到无意中发现,腾讯云服务器无法绑定公网IP的地址,即在 /etc/hosts 需要这样设置:
内网IP地址 你的hostname
公网IP地址 别的hostname