几天来我一直在尝试在 AWS 上设置 Hadoop。
我使用的是全新的 EC2 Ubuntu 实例,除了 Java 之外没有安装任何其他软件。
我运行以下命令:
ubuntu@ip-172-30-0-117:/usr/local/hadoop/sbin$ hdfs namenode -format
ubuntu@ip-172-30-0-117:/usr/local/hadoop/sbin$ ./start-dfs.sh
我在终端上得到以下结果:
Starting namenodes on [52.90.97.XXX]
52.90.97.XXX: starting namenode, logging to /usr/local/hadoop/logs/hadoop-ubuntu-namenode-ip-172-30-0-117.out
52.90.171.XXX: starting datanode, logging to /usr/local/hadoop/logs/hadoop-ubuntu-datanode-ip-172-30-0-144.out
52.90.150.XXX: starting datanode, logging to /usr/local/hadoop/logs/hadoop-ubuntu-datanode-ip-172-30-0-143.out
52.201.255.XXX: starting datanode, logging to /usr/local/hadoop/logs/hadoop-ubuntu-datanode-ip-172-30-0-142.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-ubuntu-secondarynamenode-ip-172-30-0-117.out
ubuntu@ip-172-30-0-117:/usr/local/hadoop/sbin$
注意它似乎运行了,然后又回到了提示符。当我尝试访问端口 50070 上的服务器时,什么也没得到。
深入研究日志后我发现了这个错误:
java.net.BindException: Problem binding to [52.90.97.XXX:9000] java.net.BindException: Cannot assign requested address; For more details see: http://wiki.apache.org/hadoop/BindException
根据 Wiki,它记录了 EC2 尝试绑定到端口 0.0.0.0。我该如何修复此问题?
我还使用“netstat -peant | grep ":9000" 检查过,端口 9000 上没有任何内容。
我遗漏了什么?我现在对此感到困惑。
答案1
事实证明,如果您的核心站点 IP 地址值不正确,您将得到上面描述的行为。
通过修复每个数据节点上的 IP 地址,我能够修复该问题并使其正常运行