Как получить тайм-аут датоде? - PullRequest
1 голос
/ 16 мая 2011

У меня есть настройка узла hadoop с 3 узлами, с коэффициентом репликации 2.

Когда один из моих датододов умирает, namenode ждет 10 минут, прежде чем удалить его из живых узлов.До тех пор, пока мои hdfs-записи не будут давать неверный ответ от узла.

Есть ли способ установить меньшее время ожидания (например, 1 мин), чтобы узел, где умирала датодода, немедленно отбрасывался?

Ответы [ 3 ]

2 голосов
/ 10 января 2012

Настройка следующего в вашем 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 секундам.

0 голосов
/ 07 ноября 2013

Мне удалось сделать эту работу.Я использую 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 секунд.

0 голосов
/ 26 сентября 2013

В используемой нами версии Hadoop значение dfs.heartbeat.recheck.interval должно указываться в миллисекундах (проверьте код / ​​doc вашей версии Hadoop, чтобы проверить это).

...