Ответ 1
Как описано в hbase-default.xml, здесь параметр:
Список серверов, разделенных запятыми, в кворуме ZooKeeper. Например, "host1.mydomain.com, host2.mydomain.com, host3.mydomain.com". По умолчанию для локального и псевдораспределенного режимов работы установлено значение localhost. Для полностью распределенной настройки этот параметр должен быть установлен на полный список серверов кворума ZooKeeper. Если HBASE_MANAGES_ZK установлен в hbase-env.sh, это список серверов, на которых мы начнем/остановим ZooKeeper.
На это на самом деле ответил Эдвард Дж. Юн здесь. С редактированием с моей стороны, для ясности:
Apache Zookeeper - это служба координации для распределенных приложений, таких как Google Chubby. Во многих проектах используется 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 с его кодом.