1

我建立了一个有 4 个节点的 hadoop 集群,当运行 map-reduce 任务时,map 任务很快完成,而 reduce 任务挂起 27%。我检查了日志,这是reduce任务无法从地图节点获取地图输出。

master 的作业跟踪器日志显示如下消息:

---------------------------------
2011-06-27 19:55:14,748 INFO org.apache.hadoop.mapred.JobTracker: Adding task (REDUCE)
'attempt_201106271953_0001_r_000000_0' to tip task_201106271953_0001_r_000000, for 
tracker 'tracker_web30.bbn.com.cn:localhost/127.0.0.1:56476'

master 的名称节点日志显示如下消息:

2011-06-27 14:00:52,898 INFO org.apache.hadoop.ipc.Server: IPC Server handler 4 on 
54310, call register(DatanodeRegistration(202.106.199.39:50010, storageID=DS-1989397900-
202.106.199.39-50010-1308723051262, infoPort=50075, ipcPort=50020)) from 
192.168.225.19:16129: error: java.io.IOException: verifyNodeRegistration: unknown 
datanode 202.106.199.3     9:50010

但是,“web30.bbn.com.cn”或202.106.199.39、202.106.199.3都不是从节点。我认为出现这样的 ip/domains 是因为 hadoop 无法解析节点(首先在 Intranet DNS 服务器中),然后它转到更高级别的 DNS 服务器,后来到顶部,仍然失败,然后是“垃圾”ip/domains被退回。

但是我检查了我的配置,它是这样的:

---------------------------------
/etc/hosts:
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6
192.168.225.16 master
192.168.225.66 slave1
192.168.225.20 slave5
192.168.225.17 slave17

conf/core-site.xml:

---------------------------------
<?xml version="2.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>/root/hadoop_tmp/hadoop_${user.name}</value>
    </property> 
    <property>
            <name>fs.default.name</name>
            <value>hdfs://master:54310</value>
     </property> 
    <property>
            <name>io.sort.mb</name>
            <value>1024</value>
        </property>
</configuration>

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>3</value>
    </property>
</configuration>

大师:

---------------------------------
master

奴隶:

---------------------------------
master
slave1
slave5
slave17

此外,所有防火墙(iptables)都已关闭,并且每个 2 个节点之间的 ssh 都可以。所以我不知道错误的确切来源。请帮忙。非常感谢。

4

1 回答 1

1

好在终于找到问题了。我之前做了一个测试,向集群添加了一个新节点,后来又删除了这个节点。但是忘记杀新节点的task tracker,导致新节点一直在发送心跳。在修改 hosts 文件时,新节点被注释掉了。所以master很困惑,因为找不到节点,然后尝试询问DNS服务器......杀死新节点的任务跟踪器后,一切正常

于 2011-06-28T02:42:34.747 回答