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'

マスターの名前ノード ログには、次のようなメッセージが表示されます。

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 がノードの解決に失敗し (最初にイントラネット 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

ようやく問題が見つかりました。クラスターに新しいノードを追加するために以前にテストを行い、後でノードを削除しました。しかし、新しいノードのタスク トラッカーを強制終了するのを忘れていたため、新しいノードが常にハートビートを送信していました。ホスト ファイルが変更されている間、新しいノードはコメント オフされていました。そのため、マスターはノードが誰であるかを見つけることができなかったため混乱し、DNSサーバーに問い合わせようとしました...新しいノードのタスクトラッカーを強制終了した後、すべてがうまくいきます

于 2011-06-28T02:42:34.747 に答える