2013-07-29 3 views
12

Я установил кластер узлов Hadoop на моем компьютере Ubuntu и смог запустить NameNode, datanode и т. Д. Теперь мне нужно установить HBase и Zookeeper. Но я не знаю, что это такое. Ребята могли бы дать мне краткое описание этих инструментов.Роли HBase и ZooKeeper в Hadoop?

Благодаря

ответ

19

Прежде всего, я бы настоятельно рекомендую вам пройти через официальные страницы этих проектов. Go here для HBase и here для Zookeeper.

HBase - это хранилище данных NoSQL, которое работает поверх существующего кластера Hadoop (HDFS). Он предоставляет вам возможности, такие как случайные, в режиме реального времени чтение/запись, в которых HDFS не является FS. Поскольку это хранилище данных NoSQL, оно не соответствует соглашениям и терминологиям SQL. HBase обеспечивает хороший набор API (включая JAVA и Thrift). Наряду с этим HBase также обеспечивает бесшовную интеграцию с картой MapReduce. Но, наряду со всеми этими преимуществами HBase, вы должны помнить об этом, что случайное чтение-запись выполняется быстро, но всегда имеет дополнительные накладные расходы. Поэтому подумайте, прежде чем принимать какое-либо решение.

ZooKeeper - это высокопроизводительное координационное обслуживание для распределенных приложений (например, HBase). Он предоставляет общие службы, такие как именование, управление конфигурацией, синхронизацией и групповыми услугами, в простом интерфейсе, поэтому вам не нужно писать их с нуля. Вы можете использовать его для создания консенсуса, управления группами, выборов лидеров и протоколов присутствия. И вы можете использовать его для своих собственных, конкретных потребностей.

HBase полностью полагается на Zookeeper. HBase предоставляет вам возможность использовать встроенный Zookeeper, который будет запущен при запуске HBAse. Но это плохо, если вы работаете над производственным кластером. В таких сценариях всегда хорошо иметь выделенный кластер Zookeeper и интегрировать его с вашим кластером HBase.

Примечание: В вашем ZK Quorum всегда должно быть нечетное число узлов.

НТН

+0

больших пунктов, охватываемых .. лично считаю, отдельный процессом является (достаточно второстепенной) ошибкой в ​​дизайне hbase tho –

6

Обзор:

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> 
Смежные вопросы