Rola datanode, regionserver w integracji HBase-hadoop

Z mojego zrozumienia wiersze są wstawiane do tabel HBase i są przechowywane jako regiony na innym serwerze regionu. Tak więc serwer regionu przechowuje dane

Podobnie w przypadku Hadoop, dane są przechowywane w węzłach danych obecnych w klastrze hadoop.

Powiedzmy, że mam HBase 0.90.6 skonfigurowany na górze Hadoop 1.1.1 w następujący sposób

2 węzły-master i slave

  1. węzeł główny działa jak,
    • Hadoop-Namenode, Secondary Namenode, job tracker, data node, task tracker
    • HBase-Master, RegionServer i zookeeper.
  2. węzeł Slave działa jak,
    • Hadoop datanode i task tracker
    • HBase region server

Na podstawie mojego oświadczenia, jeśli Dane tabeli są przechowywane w serwerach regionu; to jaka jest rola węzłów danych i serwerów regionu?

Author: Emanuel Ve, 2012-12-06

1 answers

Węzły danych przechowują dane. Serwery regionu zasadniczo buforują operacje We/Wy; dane są trwale przechowywane na HDFS (czyli węzłach danych). Nie sądzę, że umieszczenie serwera regionu na Twoim "głównym" węźle jest dobrym pomysłem.

Oto uproszczony obraz zarządzania regionami:

Masz klaster z HDFS (NameNode + DataNodes) o współczynniku replikacji 3 (każdy blok HDFS jest kopiowany do 3 różnych DataNodes).

Uruchamiasz Serwery regionalne na tych samych serwerach co DataNodes. Kiedy żądanie zapisu przychodzi do RegionServer, najpierw zapisuje zmiany do pamięci i dziennika zatwierdzeń; następnie w pewnym momencie decyduje, że nadszedł czas, aby zapisać zmiany do pamięci trwałej na HDFS. Oto gdzie wchodzi w grę Lokalizacja danych: ponieważ uruchomisz RegionServer i DataNode na tym samym serwerze, pierwsza replika bloku HDFS pliku zostanie zapisana na tym samym serwerze. Dwie inne repliki zostaną zapisane na innych Datanodach. W rezultacie RegionServer obsługujący region będzie prawie zawsze mieć dostęp do lokalnej kopii danych.

Co się stanie, jeśli RegionServer ulegnie awarii lub RegionMaster zdecyduje się zmienić region na inny RegionServer (aby zachować równowagę klastra)? Nowy RegionServer będzie zmuszony wykonać zdalny odczyt, ale jak tylko zostanie wykonana zagęszczenie (scalenie dziennika zmian do danych) - Nowy plik zostanie zapisany do HDFS przez nowy RegionServer, a lokalna kopia zostanie utworzona na RegionServer (ponownie, ponieważ DataNode i RegionServer działają na tym samym serwerze).

Uwaga: w przypadku awarii serwera regionów, regiony wcześniej do niego przypisane zostaną ponownie przypisane do wielu serwerów regionów.

Dobry czyta:

  • Tom White, "Hadoop, The Definitive Guide" zawiera dobre wyjaśnienie architektury HDFS. Niestety nie przeczytałem oryginalnego papieru Google GFS, więc nie wiem, czy jest łatwy do naśladowania.

  • Google BigTable artykuł. HBase jest implementacją Google BigTable i stwierdziłem, że architektura opis w tym artykule jest najłatwiejszy do naśladowania.

Oto różnice nazewnicze między implementacją Google Bigtable i HBase (z Lars George, "HBase, the Definitive Guide"):

  • HBase-Bigtable
  • Region-Tablet
  • RegionServer-Serwer tabletu
  • spłukiwanie-niewielkie zagęszczenie
  • Małe zagęszczenie-zagęszczenie scalające
  • duże zagęszczenie-duże zagęszczenie
  • Write ahead log-Commit log
  • HDFS-GFS
  • Hadoop MapReduce-MapReduce
  • MemStore-memtable
  • HFile-SSTable
  • Zookeeper-Chubby
 38
Author: Yevgen Yampolskiy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-07 08:52:32