Arkitektura ng HBase: Modelong Data ng HBase at Mekanismo na Basahin / Sumulat ng HBase



Ang blog na ito sa HBase Architecture ay nagpapaliwanag ng HBase Data Model at nagbibigay ng pananaw sa HBase Architecture. Ipinapaliwanag din nito ang iba't ibang mga mekanismo sa HBase.

Arkitektura ng HBase

Sa dati kong blog sa HBase Tutorial , Ipinaliwanag ko kung ano ang HBase at ang mga tampok nito. Nabanggit ko rin ang pag-aaral ng kaso ng messenger ng Facebook upang matulungan kang makakonekta nang mabuti. Ngayon karagdagang pagsulong sa aming , Ipapaliwanag ko sa iyo ang modelo ng data ng HBase at HBase Architecture.Bago ka magpatuloy, dapat mo ring malaman na ang HBase ay isang mahalagang konsepto na bumubuo sa isang mahalagang bahagi ng para sa Big Data Hadoop Certification.

Ang mga mahahalagang paksang dadalhin ko sa iyo sa blog ng arkitektura ng HBase ay:





Unawain muna natin ang modelo ng data ng HBase. Nakakatulong ito sa HBase sa mas mabilis na pagbasa / pagsulat at mga paghahanap.



Arkitektura ng HBase: Modelong Data ng HBase

Tulad ng alam natin, ang HBase ay isang oriented na haligi na NoSQL database. Bagaman mukhang katulad ito sa isang pamanggit na database na naglalaman ng mga hilera at haligi, ngunit hindi ito isang pamanggit na database. Ang mga nauugnay na database ay nakatuon sa hilera habang ang HBase ay nakatuon sa haligi. Kaya, unawain muna natin ang pagkakaiba sa pagitan ng mga nakabatay sa Column at mga database na naka-orient sa Hilera:

Mga database na nakatuon sa hilera kumpara sa mga naka-orient sa haligi:

  • Ang mga database na nakatuon sa hilera ay nag-iimbak ng mga tala ng talahanayan sa isang pagkakasunod-sunod ng mga hilera. Sapagkat ang mga database na nakatuon sa haligimag-imbak ng mga talaan ng talahanayan sa isang pagkakasunud-sunod ng mga haligi, ibig sabihin, ang mga entry sa isang haligi ay nakaimbak sa magkadikit na mga lokasyon sa mga disk.

Upang mas maintindihan ito, gumawa tayo ng isang halimbawa at isaalang-alang ang talahanayan sa ibaba.



Talahanayan - Arkitektura ng HBase - Edureka

Kung ang talahanayan na ito ay nakaimbak sa isang hilera-oriented database. Iimbak nito ang mga talaan tulad ng ipinakita sa ibaba:

isa,Paul Walker,US,231,Galante,

2, Vin Diesel,Brazil,520,Mustang

Sa mga database ng naka-base sa hilera ay nakaimbak ang data batay sa mga hilera o tuple na nakikita mo sa itaas.

Habang ang mga database na nakatuon sa haligi ay nag-iimbak ng data na ito bilang:

isa,2, Paul Walker,Vin Diesel, US,Brazil, 231,520, Galante,Mustang

Sa isang mga database na nakatuon sa haligi, ang lahat ng mga haligi ng haligi ay nakaimbak nang magkasama tulad ng mga halagang unang haligi na maiimbak nang magkasama, pagkatapos ang pangalawang halagang haligi ay maiimbak nang magkasama at ang data sa iba pang mga haligi ay nakaimbak sa isang katulad na pamamaraan.

  • Kapag ang dami ng data ay napakalaking, tulad ng sa mga tuntunin ng petabytes o exabytes, gumagamit kami ng diskarte na nakatuon sa haligi, dahil ang data ng isang solong haligi ay naimbak nang magkasama at maaaring ma-access nang mas mabilis.
  • Habang ang diskarte na nakatuon sa hilera ay medyo humahawak ng mas kaunting bilang ng mga hilera at haligi nang mahusay, dahil ang naka-store na database na naka-orient sa hilera ay isang nakabalangkas na format.
  • Kapag kailangan naming iproseso at pag-aralan ang isang malaking hanay ng mga semi-istrukturang o hindi istrakturang data, gumagamit kami ng diskarte na nakatuon sa haligi. Tulad ng mga application na pagharap sa Pagproseso ng Online na Analytical tulad ng pagmimina ng data, warehousing ng data, mga application kabilang ang analytics, atbp.
  • Sapagkat, Online na Transaksyonal na Pagproseso tulad ng mga domain sa pagbabangko at pananalapi na humahawak sa nakabalangkas na data at nangangailangan ng mga katangiang transactional (mga katangian ng ACID) na gumagamit ng diskarte na batay sa hilera.

Ang mga talahanayan ng HBase ay may mga sumusunod na sangkap, ipinapakita sa imahe sa ibaba:

  • Mga mesa : Ang data ay nakaimbak sa isang format ng talahanayan sa HBase. Ngunit narito ang mga talahanayan sa format na nakatuon sa haligi.
  • Hilera Susi : Ginagamit ang mga key ng row upang maghanap ng mga tala na mabilis na naghahanap. Gusto mong maging mausisa malaman kung paano? Ipapaliwanag ko ito sa bahagi ng arkitektura na sumusulong sa blog na ito.
  • Haligi Mga pamilya : Ang iba't ibang mga haligi ay pinagsama sa isang pamilya ng haligi. Ang mga pamilyang haligi na ito ay naiimbak nang magkasama na ginagawang mas mabilis ang proseso ng paghahanap dahil ang data na kabilang sa parehong pamilya ng haligi ay maaaring ma-access nang sama-sama sa isang solong paghahanap.
  • Haligi Mga kwalipikado : Kilala ang bawat pangalan ng haligi bilang kwalipikado sa haligi.
  • Cell : Ang data ay nakaimbak sa mga cell. Ang data ay itinapon sa mga cell na partikular na kinilala ng mga kwalipikado ng rowkey at haligi.
  • Timestamp : Ang Timestamp ay isang kombinasyon ng petsa at oras. Kailan man naiimbak ang data, nakaimbak ito kasama ang timestamp nito. Ginagawa nitong madaling maghanap para sa isang partikular na bersyon ng data.

Sa isang mas simple at pag-unawa na paraan, masasabi nating ang HBase ay binubuo ng:

  • Itakda ng mga talahanayan
  • Ang bawat mesa na may mga pamilya ng haligi at mga hilera
  • Ang key key ay gumaganap bilang isang pangunahing key sa HBase.
  • Ang anumang pag-access sa mga talahanayan ng HBase ay gumagamit ng Pangunahing Key na ito
  • Ang bawat kwalipikasyon ng haligi na naroroon sa HBase ay nagpapahiwatig ng katangiang naaayon sa bagay na naninirahan sa cell.

Ngayong alam mo na ang tungkol sa HBase Data Model, ipaalam sa amin kung paano ang modelo ng data na ito ay umaayon sa HBase Architecture at ginawang angkop para sa malaking imbakan at mas mabilis na pagproseso.

pumunta sa c ++

Arkitektura ng HBase: Mga Bahagi ng Arkitektura ng HBase

Ang HBase ay may tatlong pangunahing mga sangkap ibig sabihin, HMaster Server , HBase Region Server, Mga Rehiyon at Zookeeper .

Ang figure sa ibaba ay nagpapaliwanag ng hierarchy ng HBase Architecture. Pag-uusapan natin ang bawat isa sa kanila isa-isa.


Ngayon bago pumunta sa HMaster, mauunawaan natin ang Mga Rehiyon dahil ang lahat ng mga Servers na ito (HMaster, Region Server, Zookeeper) ay inilalagay upang makipag-ugnay at pamahalaan ang Mga Rehiyon at magsagawa ng iba't ibang mga operasyon sa loob ng Mga Rehiyon. Kaya't gusto mong malaman kung ano ang mga rehiyon at bakit napakahalaga nila?

Arkitektura ng HBase: Rehiyon

Naglalaman ang isang rehiyon ng lahat ng mga hilera sa pagitan ng start key at ang end key na nakatalaga sa rehiyon na iyon. Ang mga talahanayan ng HBase ay maaaring nahahati sa isang bilang ng mga rehiyon sa paraang ang lahat ng mga haligi ng isang pamilya ng haligi ay nakaimbak sa isang rehiyon. Naglalaman ang bawat rehiyon ng mga hilera sa isang pinagsunod-sunod na pagkakasunud-sunod.

Maraming mga rehiyon ang nakatalaga sa a Server ng Rehiyon , na responsable para sa paghawak, pamamahala, pagpapatupad ng pagbabasa at pagsusulat ng mga pagpapatakbo sa hanay ng mga rehiyon.

Kaya, pagtatapos sa isang mas simpleng paraan:

  • Ang isang talahanayan ay maaaring nahahati sa isang bilang ng mga rehiyon. Ang Rehiyon ay isang pinagsunod-sunod na hanay ng mga hilera na nagtatago ng data sa pagitan ng isang start key at isang end key.
  • Ang isang Rehiyon ay may isang default na laki ng 256MB na maaaring mai-configure ayon sa pangangailangan.
  • Ang isang Pangkat ng mga rehiyon ay hinahain sa mga kliyente ng isang Region Server.
  • Maaaring maghatid ang isang Region Server ng humigit-kumulang na 1000 mga rehiyon sa kliyente.

Simula ngayon mula sa tuktok ng hierarchy, nais kong ipaliwanag muna sa iyo ang tungkol sa HMaster Server na kumikilos nang katulad bilang isang NameNode sa HDFS . Pagkatapos, paglipat sa hierarchy, dadalhin kita sa pamamagitan ng ZooKeeper at Region Server.

Arkitektura ng HBase: HMaster

Tulad ng sa imahe sa ibaba, maaari mong makita ang paghawak ng HMaster ng isang koleksyon ng Region Server na naninirahan sa DataNode. Ipaunawa sa amin kung paano ito ginagawa ni HMaster.

  • Gumagawa ang HBase HMaster ng mga pagpapatakbo ng DDL (lumikha at magtanggal ng mga talahanayan) at nagtatalaga ng mga rehiyon sa mga server ng Rehiyon na nakikita mo sa imahe sa itaas.
  • Iniuugnay at pinamamahalaan nito ang Region Server (katulad ng namamahala ng NameNode ng DataNode sa HDFS).
  • Nagtatalaga ito ng mga rehiyon sa Mga Servers ng Rehiyon sa pagsisimula at muling pagtatalaga ng mga rehiyon sa Mga Serbisyo ng Rehiyon sa panahon ng pagbawi at pag-balancing.
  • Sinusubaybayan nito ang lahat ng mga pagkakataon ng Rehiyon ng Server sa kumpol (sa tulong ng Zookeeper) at nagsasagawa ng mga aktibidad sa pag-recover tuwing ang anumang Rehiyon Server ay bumaba.
  • Nagbibigay ito ng isang interface para sa paglikha, pagtanggal at pag-update ng mga talahanayan.

Ang HBase ay may ipinamamahagi at malaking kapaligiran kung saan ang HMaster lamang ay hindi sapat upang pamahalaan ang lahat. Kaya, nagtataka ka kung ano ang makakatulong sa HMaster na pamahalaan ang napakalaking kapaligiran? Iyon ang larawan ng ZooKeeper. Matapos naming maunawaan kung paano pinamamahalaan ng HMaster ang kapaligiran ng HBase, mauunawaan namin kung paano tinutulungan ng Zookeeper ang HMaster sa pamamahala ng kapaligiran.

Arkitektura ng HBase: ZooKeeper - Ang Coordinator

Ipinapaliwanag ng imaheng ito sa ibaba ang mekanismo ng koordinasyon ng ZooKeeper.

  • Ang Zookeeper ay kumikilos tulad ng isang coordinator sa loob ng pamamahagi ng HBase na kapaligiran. Nakakatulong ito sa pagpapanatili ng estado ng server sa loob ng kumpol sa pamamagitan ng pakikipag-usap sa pamamagitan ng mga sesyon.
  • Ang bawat Rehiyon Server kasama ang HMaster Server ay nagpapadala ng tuluy-tuloy na tibok ng puso sa regular na agwat sa Zookeeper at sinusuri nito kung aling server ang buhay at magagamit tulad ng nabanggit sa imahe sa itaas. Nagbibigay din ito ng mga abiso sa pagkabigo ng server upang, maisagawa ang mga hakbang sa pagbawi.
  • Sumangguni mula sa imahe sa itaas na makikita mo, mayroong isang hindi aktibong server, na kumikilos bilang isang backup para sa aktibong server. Kung nabigo ang aktibong server, dumarating ito para sa pagsagip.
  • Ang aktibong HMaster ay nagpapadala ng mga tibok ng puso sa Zookeeper habang nakikinig ang hindi aktibo na HMaster para sa notification na ipinadala ng aktibong HMaster. Kung nabigo ang aktibong HMaster na magpadala ng isang tibok ng puso ang session ay tinanggal at ang hindi aktibo na HMaster ay naging aktibo.
  • Habang kung ang isang Region Server ay nabigo upang magpadala ng isang tibok ng puso, ang session ay nag-expire at ang lahat ng mga tagapakinig ay aabisuhan tungkol dito. Pagkatapos ay nagsasagawa ang HMaster ng mga naaangkop na pagkilos sa pagbawi na tatalakayin namin sa paglaon sa blog na ito.
  • Pinapanatili din ng Zookeeper ang landas ng .META Server, na tumutulong sa anumang kliyente sa paghahanap para sa anumang rehiyon. Ang Client ay unang kailangang mag-check sa .META Server kung saan ang Rehiyon Server ay kabilang ang isang rehiyon, at nakukuha nito ang landas ng Region Server na iyon.

Tulad ng pag-uusap ko tungkol sa .META Server, hayaan mo muna akong ipaliwanag sa iyo kung ano ang .META server? Kaya, madali mong maiuugnay ang gawain ng ZooKeeper at .META Server nang magkasama. Sa paglaon, kapag ipinaliwanag ko sa iyo ang mekanismo ng paghahanap ng HBase sa blog na ito, ipapaliwanag ko kung paano gumagana ang dalawang ito sa pakikipagtulungan.

Arkitektura ng HBase: Meta Talahanayan

  • Ang talahanayan ng META ay isang espesyal na talahanayan ng katalogo ng HBase. Pinapanatili nito ang isang listahan ng lahat ng Mga Serbisyo ng Mga Rehiyon sa HBase storage system, tulad ng nakikita mo sa itaas na imahe.
  • Sa pagtingin sa pigura na nakikita mo, .META pinapanatili ng file ang talahanayan sa anyo ng mga susi at halaga. Kinakatawan ng susi ang start key ng rehiyon at ang id nito samantalang ang halaga ay naglalaman ng daanan ng Region Server.

Tulad ng napag-usapan ko na, Region Server at ang mga pag-andar nito habang ipinapaliwanag ko sa iyo ang Mga Rehiyon, ngayon ay lilipat kami sa hierarchy at ituon ko ang pansin sa bahagi ng Region Server at ang kanilang mga pagpapaandar. Sa paglaon ay tatalakayin ko ang mekanismo ng paghahanap, pagbabasa, pagsusulat at maunawaan kung paano gumagana ang lahat ng mga sangkap na ito.

Arkitektura ng HBase: Mga Bahagi ng Server ng Rehiyon

Ipinapakita ng larawang ito sa ibaba ang mga bahagi ng isang Region Server. Ngayon, tatalakayin ko silang magkahiwalay.

Ang isang Server ng Rehiyon ay nagpapanatili ng iba't ibang mga rehiyon na tumatakbo sa tuktok ng . Ang mga bahagi ng isang Server ng Rehiyon ay:

  • WAL: Tulad ng maaari mong tapusin mula sa imahe sa itaas, Isulat ang Unahan Mag-log (WAL) ay isang file na nakakabit sa bawat Region Server sa loob ng ipinamamahagi na kapaligiran. Iniimbak ng WAL ang bagong data na hindi napilit o nakatuon sa permanenteng imbakan. Ginagamit ito sa kaso ng pagkabigo na mabawi ang mga hanay ng data.
  • I-block ang Cache: Mula sa imahe sa itaas, malinaw na nakikita na ang Block Cache ay naninirahan sa tuktok ng Region Server. Iniimbak nito ang madalas na nabasang data sa memorya. Kung ang data sa BlockCache ay kamakailan-lamang na nagamit, ang data na iyon ay tinanggal mula sa BlockCache.
  • MemStore: Ito ay ang cache ng pagsulat. Iniimbak nito ang lahat ng papasok na data bago ito iharap sa disk o permanenteng memorya. Mayroong isang MemStore para sa bawat pamilya ng haligi sa isang rehiyon. Tulad ng nakikita mo sa imahe, maraming MemStores para sa isang rehiyon dahil ang bawat rehiyon ay naglalaman ng maraming pamilya ng haligi. Ang data ay pinagsunod-sunod sa pagkakasunud-sunod ng leksikograpiko bago ito gawin sa disk.
  • HFile: Mula sa figure sa itaas maaari mong makita ang HFile na nakaimbak sa HDFS. Sa gayon ay iniimbak nito ang aktwal na mga cell sa disk. Ginagawa ng MemStore ang data sa HFile kapag lumampas ang laki ng MemStore.

Ngayong alam na natin ang mga pangunahing at menor de edad na bahagi ng HBase Architecture, ipapaliwanag ko ang mekanismo at ang kanilang pagsisikap na magkakasama dito. Nagbabasa man o nagsusulat, kailangan muna naming maghanap mula saan magbasa o kung saan magsusulat ng isang file. Kaya, unawain natin ang proseso ng paghahanap na ito, dahil ito ang isa sa mga mekanismo na ginagawang tanyag ang HBase.

Arkitektura ng HBase: Paano Nagsisimula ang Paghahanap sa HBase?

Tulad ng alam mo, iniimbak ng Zookeeper ang lokasyon ng mesa ng META. Kailan man lumapit ang isang kliyente sa isang nabasa o nagsusulat ng mga kahilingan sa HBase kasunod na operasyon ay nangyayari:

  1. Kinukuha ng kliyente ang lokasyon ng talahanayan ng META mula sa ZooKeeper.
  2. Humiling ang kliyente para sa lokasyon ng Rehiyon Server ng kaukulang hilera key mula sa talahanayan ng META upang ma-access ito. Cache ng client ang impormasyong ito sa lokasyon ng META Table.
  3. Pagkatapos makukuha nito ang lokasyon ng hilera sa pamamagitan ng paghingi mula sa kaukulang Region Server.

Para sa mga sanggunian sa hinaharap, ginagamit ng kliyente ang cache nito upang makuha ang lokasyon ng talahanayan ng META at dating binasa ang Region Server ng row key. Pagkatapos ang client ay hindi mag-refer sa talahanayan ng META, hanggang at maliban kung may isang miss dahil ang rehiyon ay inilipat o inilipat. Pagkatapos ay muli itong hihilingin sa META server at i-update ang cache.

Tulad ng bawat oras, ang mga kliyente ay hindi nagsasayang ng oras sa pagkuha ng lokasyon ng Rehiyon Server mula sa META Server, sa gayon, nakakatipid ito ng oras at ginagawang mas mabilis ang proseso ng paghahanap. Ngayon, hayaan mong sabihin ko sa iyo kung paano nagaganap ang pagsusulat sa HBase. Ano ang mga sangkap na kasangkot dito at paano sila nasasangkot?

Arkitektura ng HBase: HBase Sumulat Mekanismo

Ipinapaliwanag ng imaheng ito sa ibaba ang mekanismo ng pagsulat sa HBase.

Ang mekanismo ng pagsulat ay dumadaan sa sumusunod na proseso nang sunud-sunod (sumangguni sa imahe sa itaas):

Hakbang 1: Tuwing may kahilingan sa pagsusulat ang kliyente, isusulat ng kliyente ang data sa WAL (Sumulat sa Unahan Mag-log).

  • Ang mga pag-edit pagkatapos ay idugtong sa dulo ng file na WAL.
  • Ang file na WAL na ito ay pinapanatili sa bawat Region Server at ginagamit ito ng Region Server upang mabawi ang data na hindi nakatuon sa disk.

Hakbang 2: Kapag nakasulat ang data sa WAL, pagkatapos makopya ito sa MemStore.

Hakbang 3: Kapag inilagay ang data sa MemStore, natatanggap ng client ang pagkilala.

Hakbang 4: Kapag naabot ng MemStore ang threshold, itinatapon o ginagawa ang data sa isang HFile.

Ngayon gumawa tayo ng isang malalim na pagsisid at unawain kung paano nag-aambag ang MemStore sa proseso ng pagsulat at ano ang mga pagpapaandar nito?

HBase Sumulat Mekanismo- MemStore

  • Palaging ina-update ng MemStore ang data na nakaimbak dito, sa isang lexicograpikong pagkakasunud-sunod (sunud-sunod sa isang paraan ng diksyonaryo) bilang pinagsunod-sunod na mga KeyValues. Mayroong isang MemStore para sa bawat pamilya ng haligi, at sa gayon ang mga pag-update ay nakaimbak sa isang pinagsunod-sunod na pamamaraan para sa bawat pamilya ng haligi.
  • Kapag naabot ng MemStore ang threshold, itinatapon nito ang lahat ng data sa isang bagong HFile sa isang pinagsunod-sunod na pamamaraan. Ang HFile na ito ay nakaimbak sa HDFS. Naglalaman ang HBase ng maraming HFiles para sa bawat Pamilya ng Haligi.
  • Sa paglipas ng panahon, lumalaki ang bilang ng HFile habang itinatapon ng MemStore ang data.
  • Nai-save din ng MemStore ang huling nakasulat na numero ng pagkakasunud-sunod, kaya parehong alam ng Master Server at MemStore, na kung ano ang nakatuon sa ngayon at saan magsisimula. Kapag nagsimula ang rehiyon, nabasa ang huling numero ng pagkakasunud-sunod, at mula sa numerong iyon, nagsisimula ang mga bagong pag-edit.

Tulad ng tinalakay ko nang maraming beses, ang HFile na iyon ang pangunahing paulit-ulit na pag-iimbak sa isang arkitektura ng HBase. Sa wakas, ang lahat ng data ay nakatuon sa HFile na kung saan ay ang permanenteng imbakan ng HBase. Samakatuwid, tingnan natin ang mga katangian ng HFile na ginagawang mas mabilis para sa paghahanap habang nagbabasa at sumusulat.

Arkitektura ng HBase: HBase Sumulat Mekanismo- HFile

  • Ang mga pagsusulat ay inilalagay nang sunud-sunod sa disk. Samakatuwid, ang paggalaw ng read-write head ng disk ay mas mababa. Ginagawa nitong napakabilis ng pagsulat at mekanismo ng paghahanap.
  • Ang mga HFile index ay na-load sa memorya tuwing binubuksan ang isang HFile. Nakakatulong ito sa paghanap ng isang talaan sa isang solong paghahanap.
  • Ang trailer ay isang pointer na tumuturo sa meta block ng HFile. Ito ay nakasulat sa dulo ng nakatuong file. Naglalaman ito ng impormasyon tungkol sa mga timestamp at pamumulaklak na mga filter.
  • Tumutulong ang Bloom Filter sa paghahanap ng mga pangunahing pares ng halaga, nilalaktawan nito ang file na hindi naglalaman ng kinakailangang rowkey. Nakakatulong din ang Timestamp sa paghahanap ng isang bersyon ng file, nakakatulong ito sa paglaktaw ng data.

Matapos malaman ang mekanismo ng pagsulat at ang papel na ginagampanan ng iba't ibang mga sangkap sa paggawa ng mas mabilis na pagsulat at paghahanap. Ipinapaliwanag ko sa iyo kung paano gumagana ang mekanismo ng pagbabasa sa loob ng isang arkitektura ng HBase? Pagkatapos ay lilipat kami sa mga mekanismo na nagdaragdag ng pagganap ng HBase tulad ng pag-compaction, split ng rehiyon at pagbawi.

Arkitektura ng HBase: Basahin ang Mekanismo

Tulad ng tinalakay sa aming mekanismo sa paghahanap, kunin muna ng kliyente ang lokasyon ng Region Server mula sa .META Server kung wala ito ng client sa memorya ng cache. Pagkatapos dumadaan ito sa mga sunud-sunod na hakbang tulad ng sumusunod:

  • Para sa pagbabasa ng data, hahanapin muna ng scanner ang Row cell sa Block cache. Dito nakaimbak ang lahat ng nabasa na key key pares na halaga.
  • Kung nabigo ang Scanner upang mahanap ang kinakailangang resulta, lumilipat ito sa MemStore, tulad ng alam naming ito ang memorya ng cache ng pagsulat. Doon, naghahanap ito ng pinakabagong nakasulat na mga file, na hindi pa itinapon sa HFile.
  • Sa wakas, gagamit ito ng mga namumulaklak na filter at harangan ang cache upang mai-load ang data mula sa HFile.

Sa ngayon, tinalakay ko ang mekanismo ng paghahanap, pagbabasa at pagsulat ng HBase. Ngayon titingnan namin ang mekanismo ng HBase na gumagawa ng paghahanap, basahin at isulat nang mabilis sa HBase. Una, mauunawaan natin Siksik , na kung saan ay isa sa mga mekanismo.

Arkitektura ng HBase: Siksik

HBase pinagsasama ang HFiles upang mabawasan ang imbakan at mabawasan ang bilang ng mga disk na hinahangad na kinakailangan para sa isang nabasa. Ang prosesong ito ay tinawag siksik . Pinipili ng compaction ang ilang mga HFile mula sa isang rehiyon at pinagsasama ang mga ito. Mayroong dalawang uri ng compaction tulad ng nakikita mo sa imahe sa itaas.

paglalarawan ng trabaho ng administrator ng linux system
  1. Minor Compaction : Awtomatikong pumili ang HBase ng mas maliit na HFiles at inirekomenda ang mga ito sa mas malaking HFiles tulad ng ipinakita sa imaheng nasa itaas. Tinatawag itong Minor Compaction. Gumagawa ito ng pagsasama-sama ng uri para sa paggawa ng mas maliit na HFiles sa mas malaking HFiles. Nakakatulong ito sa pag-optimize ng space space.
  2. Pangunahing Compaction: Tulad ng nakalarawan sa imahe sa itaas, sa Major compaction, pinagsasama at inirekomenda ng HBase ang mas maliit na HFiles ng isang rehiyon sa isang bagong HFile. Sa prosesong ito, ang parehong mga pamilya ng haligi ay pinagsama-sama sa bagong HFile. Ibabagsak nito ang natanggal at nag-expire na cell sa prosesong ito. Pinapataas nito ang pagganap ng nabasa.

Ngunit sa prosesong ito, maaaring masikip ang mga disk ng input-output at trapiko sa network. Ito ay kilala bilang sumulat ng pagpapalaki . Kaya, sa pangkalahatan ito ay naka-iskedyul sa panahon ng mababang pag-Timing ng pag-load.

Ngayon isa pang proseso ng pag-optimize sa pagganap na tatalakayin ko ay Hatiin ng Rehiyon . Napakahalaga nito para sa pagbabalanse ng pag-load.

Arkitektura ng HBase: Hatiin ng Rehiyon

Inilalarawan ng pigura sa ibaba ang mekanismo ng Rehiyon na Hati.

Kailan man maging malaki ang isang rehiyon, nahahati ito sa dalawang mga rehiyon ng bata, tulad ng ipinakita sa itaas na pigura. Ang bawat rehiyon ay kumakatawan sa eksaktong kalahati ng parent na rehiyon. Pagkatapos ang paghati na ito ay naiulat sa HMaster. Hawak ito ng parehong Rehiyon ng Server hanggang sa mailaan sila ng HMaster sa isang bagong Region Server para sa pagbalanse ng load.

Ang paglipat sa linya, huling ngunit ang hindi bababa sa, ipapaliwanag ko sa iyo kung paano nakakakuha ang HBase ng data pagkatapos ng isang pagkabigo. Tulad ng ating pagkakaalam Pagkabigo sa Pagkabigo ay isang napakahalagang tampok ng HBase, sa gayon ipaalam sa amin kung paano nakakakuha ng muli ang data ng HBase pagkatapos ng pagkabigo.

Arkitektura ng HBase: Ang HBase Crash at Data Recovery

  • Kailan man nabigo ang isang Region Server, aabisuhan ng ZooKeeper sa HMaster ang tungkol sa kabiguan.
  • Pagkatapos ang HMaster ay namamahagi at naglalaan ng mga rehiyon ng na-crash na Region Server sa maraming mga aktibong Servers ng Rehiyon. Upang makuha ang data ng MemStore ng nabigong Region Server, ipinamamahagi ng HMaster ang WAL sa lahat ng Mga Servers ng Rehiyon.
  • Isinasagawa muli ng bawat Region Server ang WAL upang maitayo ang MemStore para sa nabigong pamilya ng haligi ng rehiyon.
  • Ang data ay nakasulat sa magkakasunod na pagkakasunud-sunod (sa isang napapanahong pagkakasunud-sunod) sa WAL. Samakatuwid, muling pagpapatupad na ang WAL ay nangangahulugang paggawa ng lahat ng pagbabagong nagawa at naimbak sa MemStore file.
  • Kaya, pagkatapos na maipatupad ng lahat ng Mga Serbisyo ng Rehiyon ang WAL, makuhang muli ang data ng MemStore para sa lahat ng pamilya ng haligi.

Inaasahan kong ang blog na ito ay makakatulong sa iyo sa understating ng HBase Data Model at HBase Architecture. Umasa kong nasiyahan ka. Ngayon ay maaari mong maiugnay ang mga tampok ng HBase (na ipinaliwanag ko sa nakaraan HBase Tutorial blog) kasama ang HBase Architecture at maunawaan kung paano ito gumagana sa loob. Ngayong alam mo na ang panteorya na bahagi ng HBase, dapat kang lumipat sa praktikal na bahagi. Isinasaalang-alang ito, ang aming susunod na blog ng ay magpapaliwanag ng isang sample HBase POC .

Ngayon na naintindihan mo ang HBase Architecture, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Edureka Big Data Hadoop Certification Training ay tumutulong sa mga nag-aaral na maging dalubhasa sa HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume at Sqoop na gumagamit ng mga kaso ng paggamit ng real-time sa Retail, Social Media, Aviation, Turismo, Pananalapi domain.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalikan ka namin.