Обзор:
Zookeeper: Короче говоря, это Zookeeper конфигурирование и управление инструментом распределенного приложения (кластер), и он выходит независимым от HBase. Из документов:
ZooKeeper является централизованной службой для поддержания конфигурации информации, наименования, обеспечивая распределенную синхронизацию, и предоставления групповых услуг. Все эти виды услуг используются в в той или иной форме распределенными приложениями. Каждый раз, когда они выполняются , есть много работы, которая идет на исправление ошибок и неизбежных условий гонки . Из-за сложности , реализующей эти виды услуг, приложения первоначально обычно экономят на них, что делает их хрупкими при наличии изменений и сложно управлять. Даже если все сделано правильно, различные реализации этих служб приводят к сложности управления, когда приложения развернуты.
HBase: NoSQL хранилищу на вершине HDFS (можно использовать простую файловую систему, но это не гарантирует отсутствие долговечности данных). HBase содержит две основных услуг:
- Мастер сервер - мастер-сервер (HMaster) координирует кластера и выполняет административные операции, такие как назначение областей и балансировку нагрузки.
- Сервер регионов - регион серверы выполняют настоящую работу. Подмножество данных каждой таблицы обрабатывается каждым региональным сервером. Клиенты общаются с региональными серверами для доступа к данным в HBase.
Связь между HBase и Zookeeper:
Распределенная HBase опирается полностью на Zookeeper (для конфигурации кластера и управления). В Apache HBase ZooKeeper координирует, обменивает и разделяет состояния между Masters и RegionServers. HBase имеет политику проектирования использования ZooKeeper только для временных данных (то есть для координации и государственной коммуникации). Таким образом, если данные ZooKeeper HBase удалены, на них влияют только временные операции - данные могут продолжаться и записываться в/из HBase.
После того, как у вас есть HBase начала - вы можете проверить процессы она начала использовать jps
команды:
$ jps
команда выведет список всех процессов Java на машине (сам HBase этого приложения Java) - вероятный выход (в случае простой автономной установки HBase) должен быть:
62019 Jps
61098 HMaster
61233 HRegionServer
61003 HQuorumPeer
Технически говоря: По умолчанию HBase управляет самим zookeeper, т.е. запускает и останавливает кворум zookeeper (кластер узлов zookeeper), когда мы запускаем и останавливаем HBase - чтобы проверить настройки в файле conf/hbase-evn.sh
(в вашем каталоге hbase) должна быть строка :
export HBASE_MANAGES_ZK=true
После установки все, что нам нужно сделать, это установить следующие директивы в conf/hbase-site.xml
- from docs:
<configuration>
...
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description> The port at which the clients will connect.
</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>rs1.example.com,rs2.example.com,rs3.example.com,rs4.example.com,rs5.example.com</value>
<description>Comma separated list of servers in the ZooKeeper Quorum.
For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
By default this is set to localhost for local and pseudo-distributed modes
of operation. For a fully-distributed setup, this should be set to a full
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
this is the list of servers which we will start/stop ZooKeeper on.
</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper</value>
<description>Property from ZooKeeper's config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>
...
</configuration>
больших пунктов, охватываемых .. лично считаю, отдельный процессом является (достаточно второстепенной) ошибкой в дизайне hbase tho –