2010-12-14 7 views

Odpowiedz

18

Jak opisano w hbase-default.xml, oto ustawienia:

oddzielone przecinkami listę serwerów w Heca kworum. Na przykład "host1.mydomain.com, host2.mydomain.com, host3.mydomain.com". Domyślnie jest ustawiony na localhost dla lokalnych i pseudo-rozproszonych trybów działania. W pełni rozproszonej konfiguracji należy ustawić pełną listę serwerów kworum ZooKeeper. Jeśli HBASE_MANAGES_ZK jest ustawiony w hbase-env.sh, jest to lista serwerów, na których uruchomimy/zatrzymamy ZooKeeper.

Co to właściwie robi zostało odebrane przez Edwarda J. Yoon here. z edycji z mojej strony, dla jasności:

Apache Zookeeper jest usługa koordynacji rozproszonych aplikacji, takich jak Google Chubby . Wiele projektów używa zookeepera, a my (Apache Hama) również używamy zookeepera do synchronizacji barier w synchronicznym równoległym systemie obliczeniowym.

Dziś przeprowadziłem ankietę na temat funkcji paxos i dynamicznego kworum projektu Zookeeper, aby lepiej nazwać klasę org.apache.hama.zookeeper.QuorumPeer. Ponieważ dokumentacja to za mało (http://hadoop.apache.org/zookeeper/docs/r3.0.0/api/index.html), nie rozumiałem znaczenia "kworum", ponieważ termin ten był dla mnie nieco dziwny. Ale "org.apache.hama.zookeeper.QuorumPeer" to nazwa własna !! xD

Czym więc jest Kworum i dlaczego potrzebujemy Kworum?

Według Wikipedii Kworum to minimalna liczba członków organu obradującego, niezbędnych do prowadzenia działalności gospodarczej tej grupy. Zazwyczaj jest to większość osób, które mają się tam znaleźć, chociaż wiele organów może mieć niższe lub wyższe kworum.

Mechanizm fault-tolerancyjny jest jedną z ważnych funkcji systemu rozproszonego. Algorytm kworum służy do zapobiegania warunkom podziału mózgu. Gdy wystąpi stan podziału mózgu, zgodnie z algorytmem kworum, zookeeper określa "partycję podstawową" i "partycję dodatkową". Następnie serwery w grupie podstawowej odbierają i przetwarzają żądanie użytkownika, a serwery w grupie dodatkowej stają się tylko do odczytu.

Kiedy ten system odzyskuje zdrowie po rozszczepieniu mózgu? Po ponownym scaleniu z jedną partycją. Wewnętrznie, zookeeper używa protokół transmisji atomowej zamiast Paxos.

Powinieneś także read the original version, na wypadek, gdyby błędnie przetłumaczyłem koncepcje, które chciał przedstawić.

Moje rozumienie mechanizmu kworum w Apache Zookeeper jest jawnie definiuje kworum replikacji na kilku predefiniowanych hostach. Jeśli to kworum nie zostanie spełnione, partycje, które nie zgadzają się, są dzielone na partycję dodatkową, dopóki Zookeeper nie będzie mógł ponownie zintegrować ich z partycją podstawową.

Dodaje to większą ziarnistość do modelu Hadoop eventual consistency. Tymczasem HBase jest obecnie w trakcie further integrating Zookeeper with its code.

5

Z pliku HBase-default.xml:

oddzielone przecinkami listę serwerów w Heca kworum. Na przykład "host1.mydomain.com, host2.mydomain.com, host3.mydomain.com". Domyślnie jest to ustawione na localhost dla lokalnych i pseudo-rozproszonych trybów pracy . Aby uzyskać w pełni rozproszoną konfigurację, należy ją ustawić na pełną listę serwerów kworum ZooKeeper w wersji . Jeśli HBASE_MANAGES_ZK jest ustawiony w hbase-env.sh , jest to lista serwerów, na których uruchomimy/zatrzymamy ZooKeeper.

A z Getting Started na odcinku Wymagania:

HBase zależy Heca jako wydania 0.20.0. HBase zachowuje położenie swojej tabeli głównej, kto jest bieżącym wzorcem i jakie regiony aktualnie uczestniczą w klastrze w ZooKeeper. Klienci i serwery muszą teraz znać lokalizację kworum ZooKeeper, zanim będą mogli zrobić cokolwiek innego (zwykle pobierają te informacje z konfiguracji dostarczonej na ich CLASSPATH). Domyślnie HBase zarządza pojedynczą instancją ZooKeeper. W trybach autonomicznym i pseudo-rozproszonym zwykle wystarcza, ale w trybie w pełni rozproszonym powinieneś skonfigurować kworum ZooKeeper (więcej informacji poniżej).

Nadzieję, że pomaga.