1

レプリケーション係数が 2 の 3 ノード Hadoop セットアップがあります。

データノードの 1 つが停止すると、namenode は 10 分間待機してからライブ ノードから削除します。それまでは、hdfs 書き込みはノードからの悪い ack を言って失敗します。

データノードが停止したノードがすぐに破棄されるように、より短いタイムアウト (1 分など) を設定する方法はありますか?

4

3 に答える 3

2

hdfs-site.xmlで次のように設定すると、 1 分間のタイムアウトが発生します。

<property>
 <name>heartbeat.recheck.interval</name>
 <value>15</value>
 <description>Determines datanode heartbeat interval in seconds</description>
</property>

上記が機能しない場合は、次のことを試してください (バージョンに依存しているようです)。

<property>
 <name>dfs.heartbeat.recheck.interval</name>
 <value>15</value>
 <description>Determines datanode heartbeat interval in seconds.</description>
</property>

タイムアウトは 2 * heartbeat.recheck.interval + 10 * heartbeat.intervalに等しくなります。heartbeat.intervalのデフォルトは 3 秒です。

于 2012-01-10T16:31:23.740 に答える
0

私はこの仕事をすることができました。Hadoop バージョン 0.2.2 を使用しています。

hdfs-site.xmlに追加したものは次のとおりです。

 <property>
    <name>dfs.heartbeat.interval</name>
    <value>2</value>
    <description>Determines datanode heartbeat interval in seconds.</description>
  </property>

  <property>
    <name>dfs.heartbeat.recheck.interval</name>
    <value>1</value>
    <description>Determines when machines are marked dead</description>
  </property>

このパラメーターは、Hadoop の他のバージョンでは異なる場合があります。正しいパラメーターを使用していることを確認する方法は次のとおりです。パラメーターを設定したら、マスターを起動し、次の場所で構成を確認します。

http://your_master_machine:19888/conf

そこに「dfs.heartbeat.interval」および/または「dfs.heartbeat.recheck.interval」が見つからない場合は、「dfs」なしのバージョンを使用してみてください。プレフィックス:

「heartbeat.interval」と「heartbeat.recheck.interval」

最後に、死んだデータノードが必要な時間後に使用されなくなったことを確認するには、データノードを強制終了してから、次の場所でコンソールを繰り返し確認します。

http://your_master_machine:50070

私の場合、ここに示した構成では、約 20 秒後に無効なデータノードが削除されることがわかります。

于 2013-11-07T15:02:50.803 に答える