向hadoop集群添加数据节点

向hadoop集群添加数据节点,hadoop,Hadoop,当我使用start all.sh启动hadoopnode1时,它成功地启动了主服务器和从服务器上的服务(请参阅从服务器的jps命令输出)。但当我尝试在管理屏幕中查看活动节点时,从属节点没有显示。即使当我从master运行hadoop fs-ls/命令时,它也能完美地运行,但从salve它会显示错误消息 @hadoopnode2:~/hadoop-0.20.2/conf$ hadoop fs -ls / 12/05/28 01:14:20 INFO ipc.Client: Retrying con

当我使用
start all.sh
启动hadoopnode1时,它成功地启动了主服务器和从服务器上的服务(请参阅从服务器的jps命令输出)。但当我尝试在管理屏幕中查看活动节点时,从属节点没有显示。即使当我从master运行
hadoop fs-ls/
命令时,它也能完美地运行,但从salve它会显示错误消息

@hadoopnode2:~/hadoop-0.20.2/conf$ hadoop fs -ls /
12/05/28 01:14:20 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 0 time(s).
12/05/28 01:14:21 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 1 time(s).
12/05/28 01:14:22 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 2 time(s).
12/05/28 01:14:23 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 3 time(s).
.
.
.
12/05/28 01:14:29 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 10 time(s).
看起来从节点(hadoopnode2)无法找到/连接主节点(hadoopnode1)

请告诉我我遗漏了什么

以下是主节点和从节点的设置- 另外,运行同一版本Linux、Hadoop和SSH的主从机工作正常, 因为我可以从主节点启动从节点

主(hadooopnode1)和从(HadooopNode2)上的core-site.xml、hdfs-site.xml和mapred-site.xml的设置也相同

OS-Ubuntu10 Hadoop版本-

oop@hadoopnode1:~/hadoop-0.20.2/conf$ hadoop version
Hadoop 0.20.2
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707
Compiled by chrisdo on Fri Feb 19 08:07:34 UTC 2010
--Master(hadoopnode1)

--从属(hadoopnode2)

hadoop@hadoopnode2:~/hadoop-0.20.2/conf$uname-a
Linux hadoopnode2 2.6.35-32-generic#67 Ubuntu SMP Mon Mar 5 19:35:26 UTC 2012 i686 GNU/Linux
hadoop@hadoopnode2:~/hadoop-0.20.2/conf$jps
1959数据节点
2631日元
2108任务跟踪器
masters-hadoopnode1
core-site.xml
hadoop@hadoopnode2:~/hadoop-0.20.2/conf$cat core-site.xml
hadoop.tmp.dir
/var/tmp/hadoop/hadoop-${user.name}
其他临时目录的基础
fs.default.name
hdfs://hadoopnode1:8020
默认文件系统的名称
hadoop@hadoopnode2:~/hadoop-0.20.2/conf$cat mapred-site.xml
mapred.job.tracker
Hadoop节点1:8021
MapReduce作业跟踪器运行的主机和端口。如果为“本地”,则作业将作为单个映射在进程中运行
hadoop@hadoopnode2:~/hadoop-0.20.2/conf$cat hdfs-site.xml
dfs.replication
2.
默认块复制

检查namenode和datanode日志。(应该在
$HADOOP\u HOME/logs/
中)。最可能的问题是namenode和datanode ID不匹配。从所有节点中删除
hadoop.tmp.dir
并再次格式化namenode(
$hadoop\u HOME/bin/hadoop namenode-format
),然后重试

我认为是奴隶2。从属2应该侦听同一端口8020,而不是侦听8021。

将新节点主机名添加到从属文件,并在新节点上启动数据节点和任务跟踪器。

在您的情况下确实有两个错误

can't connect to hadoop master node from slave
这就是网络问题。测试它:curl 192.168.1.120:8020

正常响应:curl:(52)来自服务器的空回复

在我的情况下,我得到主机未找到错误。所以,只要看看防火墙设置

data node down:
这就是hadoop的问题。Raze2dust的方法很好。如果您在日志中看到不兼容的NamespaceId错误,还有另一种方法:

停止hadoop并在/current/VERSION中编辑namespaceID的值以匹配当前namenode的值,然后启动hadoop


您始终可以使用以下命令检查可用的数据节点:
hadoop fsck/

在web GUI上,您可以看到集群的节点数。如果您看到的比预期的少,那么请确保master上的/etc/hosts文件仅作为主机(对于2节点集群)

如果您看到任何127.0。。。。。ip然后注释掉,因为Hadoop将首先将它们视为主机。
我有上面的问题,我用上面的方法解决了。希望这能有所帮助。

请查看sudo jps提供的服务 母版不应显示您需要执行的操作

Restart Hadoop
Go to /app/hadoop/tmp/dfs/name/current
Open VERSION (i.e. by vim VERSION)
Record namespaceID
Go to /app/hadoop/tmp/dfs/data/current
Open VERSION (i.e. by vim VERSION)
Replace the namespaceID with the namespaceID you recorded in step 4.

这应该行得通。祝你好运

看来问题出在名称解析上,请看我的评论。感谢诸如此类的问题在名称解决中,请看我的评论。我已经按照一些安装指南中的说明配置了服务器。端口8020用于hdfs,端口8021用于JobTracker
data node down:
192.168.0.1 master
192.168.0.2 slave
Restart Hadoop
Go to /app/hadoop/tmp/dfs/name/current
Open VERSION (i.e. by vim VERSION)
Record namespaceID
Go to /app/hadoop/tmp/dfs/data/current
Open VERSION (i.e. by vim VERSION)
Replace the namespaceID with the namespaceID you recorded in step 4.