2016-09-17 3 views
0

В процессе отказа при сбое, Hadoop's ZKFC позаботится о переключении между ANN < -> SNN. Но во время этого процесса есть шаг, называемый фехтованием, чтобы отключить ANN.Запрос на Hadoop Высокая доступность

Если мощность ANN отключилась и была использована стратегия sshfence по умолчанию.

«Переключение не будет происходить, потому что SSH в ИНС не будет работать, и, следовательно, ставя под угрозу высокую доступность»

Из документации

«Однако, когда происходит переход на другой ресурс, это еще возможно, что previous Active NameNode может обслуживать запросы на чтение клиентам, которые могут быть устаревшими до тех пор, пока этот NameNode не выключится при попытке записи в JournalNodes. По этой причине все же желательно настроить некоторые методы фехтования даже при использовании Менеджера журналов Quorum. "

  • Как другие распределенные системы решают эту проблему без ущерба для высокой доступности?
  • Если существует уже существующее решение вышеупомянутого вопроса, почему hdfs не принимает его?

ответ

0

Конфигурация Hdfs позволяет использовать более одного метода ограждения.

Из документов:

«Для того, чтобы сделать это, необходимо настроить по крайней мере один метод ограждения Они выполнены в виде возврата каретки отделенным список, который будет предпринят в порядке, пока один указывает. что фехтование преуспело ».

Важно отметить, что эти методы должны реализовывать какой-то механизм тайм-аута или немедленно возвращаться. Самый простой способ - использовать sshfence с таймаутом и оболочкой ('/ bin/true') в качестве второго метода (при условии, что ANN не работает). Пример:

<property> 
    <name>dfs.ha.fencing.methods</name> 
    <value>sshfence\nshell(/bin/true)</value> 
</property> 
<property> 
    <name>dfs.ha.fencing.ssh.connect-timeout</name> 
    <value>30000</value> 
</property> 

Конечно, вы можете написать более сложный скрипт, который проверяет, отключен ли ANN.

+0

Настройка нескольких методов ограждения не решит проблему из моего понимания, как описано в этом утверждении. "все еще возможно, что предыдущий активный NameNode мог обслуживать запросы на чтение клиентам" Является ли концепция ограждения распространенной среди всех распределенных систем или связана только с Hadoop? Как другие справляются с возможностью устаревших чтений? –

+0

@pavankumarreddy Настройка нескольких методов фехтования решает другую проблему, о которой вы упоминали: «Переключение не произойдет, потому что ssh в ANN не будет работать и, следовательно, скомпрометирует высокую доступность» Старые чтения будут решаться самим sshfence. Это будет ssh к namenode и убить процессы namenode. Но, если вы ищете что-то еще более надежное, взгляните на силовое ограждение или на другие решения [здесь] (https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Cluster_Suite_Overview/ s2-фехтование-обзор-CSO.html) –