5

当我通过 using 启动 hadoopnode1 时start-all.sh,它成功地启动了 master 和 slave 上的服务(请参见 slave 的 jps 命令输出)。但是当我尝试在管理屏幕中查看活动节点时,从节点没有出现。即使我hadoop fs -ls /从 master 运行命令它运行完美,但从 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)

请指出我缺少什么?

这是主节点和从节点的设置 - PS - 运行相同版本的 Linux 和 Hadoop 和 SSH 的主节点和从节点运行良好,因为我可以从主节点启动从节点

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

操作系统 - Ubuntu 10 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

-- 主(hadoopnode1)

hadoop@hadoopnode1:~/hadoop-0.20.2/conf$ uname -a
Linux hadoopnode1 2.6.35-32-generic #67-Ubuntu SMP Mon Mar 5 19:35:26 UTC 2012 i686 GNU/Linux

hadoop@hadoopnode1:~/hadoop-0.20.2/conf$ jps
9923 Jps
7555 NameNode
8133 TaskTracker
7897 SecondaryNameNode
7728 DataNode
7971 JobTracker

masters -> hadoopnode1
slaves -> hadoopnode1
hadoopnode2

--奴隶(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 DataNode
2631 Jps
2108 TaskTracker

masters - hadoopnode1

core-site.xml
hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/var/tmp/hadoop/hadoop-${user.name}</value>
                <description>A base for other temp directories</description>
        </property>

        <property>
                <name>fs.default.name</name>
                <value>hdfs://hadoopnode1:8020</value>
                <description>The name of the default file system</description>
        </property>

</configuration>

hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>hadoopnode1:8021</value>
                <description>The host and port that the MapReduce job tracker runs at.If "local", then jobs are run in process as a single map</description>
        </property>
</configuration>

hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ cat hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
                <description>Default block replication</description>
        </property>
</configuration>
4

6 回答 6

1

通过 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.

这应该工作。祝你好运

于 2014-06-19T14:56:11.203 回答
1

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

192.168.0.1 master
192.168.0.2 slave

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

于 2012-12-02T10:55:02.680 回答
0

实际上,您的情况有两个错误。

can't connect to hadoop master node from slave

那是网络问题。测试它: curl 192.168.1.120:8020 。

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

就我而言,我得到主机未找到错误。所以看看防火墙设置

data node down:

那是hadoop的问题。Raze2dust 的方法很好。如果您在日志中看到 Incompatible namespaceIDs 错误,这是另一种方法:

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

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

于 2012-05-30T03:29:10.843 回答
0

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

于 2012-05-28T06:31:22.567 回答
0

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

于 2012-05-29T09:14:30.963 回答
0

我认为在从站 2 中。从站 2 应该侦听同一个端口 8020,而不是侦听 8021。

于 2012-05-28T07:35:49.853 回答