Что такое параметр кворума zookeeper в hbase-site.xml? - PullRequest
20 голосов
/ 14 декабря 2010

Что такое параметр кворума zookeeper в hbase-site.xml?

Ответы [ 2 ]

21 голосов
/ 14 декабря 2010

Как описано в hbase-default.xml, , вот настройка:

Список серверов в кворуме ZooKeeper, разделенных запятыми. Например, «host1.mydomain.com, host2.mydomain.com, host3.mydomain.com». По умолчанию для локального и псевдораспределенного режимов работы установлено значение localhost. Для полностью распределенной установки это должен быть полный список серверов кворума ZooKeeper. Если HBASE_MANAGES_ZK установлен в hbase-env.sh, это список серверов, на которых мы запустим / остановим ZooKeeper.

Что это на самом деле делает ответил Эдвард Дж. Юн здесь. С редактированием с моей стороны, для ясности:

Apache Zookeeper - это сервис координации для распределенных приложений, таких как Chubby от Google. Во многих проектах используется zookeeper, и мы (Apache Hama) также используем zookeeper для барьерной синхронизации среды массовых синхронных параллельных вычислений.

Сегодня я рассмотрел больше о paxos и функциях динамического кворума проекта Zookeeper, чтобы лучше назвать класс org.apache.hama.zookeeper.QuorumPeer. Поскольку документации недостаточно (http://hadoop.apache.org/zookeeper/docs/r3.0.0/api/index.html), я не понял значения слова «кворум», так как этот термин был несколько странным для меня. Но "org.apache.hama.zookeeper.QuorumPeer" - правильное имя !! XD

Итак, что такое кворум и зачем нам кворум?

Согласно Википедии, кворум - это минимальное количество членов совещательного органа, необходимое для ведения бизнеса этой группы. Обычно это ожидают большинство людей, хотя у многих тел кворум может быть ниже или выше.

Как вы знаете, отказоустойчивый механизм является одной из важных функций распределенной системы. Алгоритм кворума используется для предотвращения разделения мозга. Когда возникает состояние разделения мозга, согласно алгоритму кворума, zookeeper определяет «первичный раздел» и «вторичный раздел». Затем серверы в первичной группе получают и обрабатывают запрос пользователя, а серверы в вторичной группе становятся доступными только для чтения.

Когда эта система восстанавливается после состояния деления мозга? Когда они снова объединяются в один раздел. Внутри zookeeper использует протокол атомного вещания вместо Paxos.

Вы также должны прочитать оригинальную версию, на случай, если я неправильно переведу концепции, которые он пытался представить.

Мое понимание механизма кворума в Apache Zookeeper заключается в том, что он явно определяет кворум репликации для нескольких предварительно определенных хостов. Если этот кворум не соблюден, несоответствующие разделы разделяются на дополнительный раздел, пока Zookeeper не сможет реинтегрировать их в основной раздел.

Это добавляет больше детализации к модели возможной согласованности Hadoop. Тем временем HBase в настоящее время находится в процессе дальнейшей интеграции Zookeeper с его кодом.

5 голосов
/ 14 декабря 2010

Из файла hbase-default.xml:

Список серверов, разделенных запятыми, в Кворуме ZooKeeper. Например, «host1.mydomain.com, host2.mydomain.com, host3.mydomain.com». По умолчанию для локального и псевдораспределенного режимов установлено значение localhost. операции. Для полностью распределенной установки это должно быть установлено на полную список серверов кворума ZooKeeper. Если HBASE_MANAGES_ZK установлен в hbase-env.sh это список серверов, на которых мы будем запускать / останавливать ZooKeeper.

А из раздела Требования к началу работы:

HBase зависит от ZooKeeper, начиная с версии 0.20.0. HBase сохраняет местоположение своей корневой таблицы, кто является текущим мастером и какие регионы в настоящее время участвуют в кластере в ZooKeeper. Клиенты и серверы теперь должны знать свои местоположения в ZooKeeper Quorum, прежде чем они смогут делать что-либо еще (обычно они получают эту информацию из конфигурации, предоставленной в их CLASSPATH). По умолчанию HBase будет управлять одним экземпляром ZooKeeper для вас. В автономном и псевдораспределенном режимах этого обычно достаточно, но для полностью распределенного режима вы должны настроить кворум ZooKeeper (подробнее см. Ниже).

Надеюсь, это поможет.

...