Hadoop namenode拒绝连接!?我究竟做错了什么?

时间:2011-09-15 06:45:32

标签: java linux hadoop port rhel

我的配置:

服务器级机器集群(4台机器),每台机器都配有RHEL,8GB RAM,四核处理器。 我将机器'B1'设置为主机,其余的'作为从机(B2,B3,B4)。启动dfs-start.sh,名称节点在B1上的53410上出现。其余节点无法连接到53410上的B1!

这是我到目前为止所做的:

  1. 从B2,B3,B4尝试“telnet B1 53410” - 连接被拒绝。
  2. 从B2,B3,B4尝试ssh到B1,反之亦然 - 没问题,工作正常。
  3. 将53410更改为55410,重新启动dfs,同样的问题 - 此端口上的连接也被拒绝。
  4. 在B1上禁用防火墙(iptables停止) - 尝试从B2,B3,B4连接 - 在telnet上失败。
  5. 在所有节点上禁用防火墙,再次尝试,再次失败以连接到53410。
  6. 检查ftp正在从B2,B3,B4工作到B1,停止ftp服务(服务vsftpd停止),尝试在标准ftp端口(21)上启动dfs,namenode出现,其余节点再次失败。甚至无法从B2,B3,B4远程登录到ftp端口。
  7. “telnet localhost 53410”在B1上运行正常。
  8. 所有节点都可以相互访问,所有/ etc / hosts都设置正确的ip地址映射。所以,我现在几乎无能为力。为什么namenode拒绝连接 - 在hadoop conf中是否有设置,我应该知道允许外部客户端在namenode端口上远程连接?

4 个答案:

答案 0 :(得分:4)

以前的答案对我来说并不清楚。 基本上每个hadoop服务器(节点或名称节点)将创建一个服务器并侦听与其查找名称相关联的IP。

假设您有3个框(box1,box2,box3),/ etc / hosts文件应如下所示:

127.0.0.1 localhost
192.168.10.1 box1
192.168.10.2 box2
192.168.10.3 box3

而不是:

127.0.0.1 localhost box1
192.168.10.2 box2
192.168.10.3 box3
//(this is incorrect, box one will be listening exclusively on 127.0.0.1)

答案 1 :(得分:2)

解决了这个..这是我的/ etc / hosts中的错误条目。所有节点都在环回连接到主节点。

答案 2 :(得分:1)

尝试在conf / core-site.xml中进行更改

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:54310</value>
</property>

从localhost到您的机器名称?

答案 3 :(得分:0)

使用正确的文件权限设置DataNode:

chmod 755 /home/svenkata/hadoop/datanode/