sql >> Databasteknik >  >> NoSQL >> HBase

Guide till hur du använder Apache HBase-portar

För de personer som inte har använt Apache HBase (version 0.90 och senare) kan konfigurationen av nätverksportar som används av systemet vara lite överväldigande.

I det här blogginlägget kommer du att lära dig alla TCP-portar som används av de olika HBase-processerna och hur och varför de används (alla på ett ställe) — för att hjälpa administratörer att felsöka och ställa in brandväggsinställningar och hjälpa nya utvecklare att felsöka.

Ett typiskt HBase-kluster har en aktiv master, en eller flera backup-masters och en lista med regionservrar. Backupmasterna är standbymasters som väntar på att bli nästa aktiva. Innan de är aktiva lyssnar de inte på några portar. (Läs mer om hur HBase-skalbarhet fungerar här.)

Varje server i klustret lyssnar på en huvudport för förfrågningar från klienter och/eller andra HBase-servrar. Varje server har också en inbäddad Jetty webbgränssnittsserver.

Följande diagram visar kommunikationen mellan olika komponenter. (Blå komponenter tillhör HBase-klustret, vanligtvis bakom en brandvägg; grå komponenter är externa klienter, vanligtvis utanför HBase-klustrets brandvägg; grön komponent är en webbläsare, vanligtvis utanför brandväggen också.)

  1. Klientapplikationer pratar med Apache ZooKeeper för att ta reda på platsen för master- och metaregionservern (rotregionen tas bort i HBase version 0.96).
  2. Klientapplikationer pratar med regionservrar för att läsa från/skriva till/skanna en tabell.
  3. Klientapplikationer pratar med mastern för att få information om en befintlig tabell, skapa/ta bort en tabell dynamiskt, lägga till/ta bort en kolumnfamilj.
  4. Mastaren pratar med regionservrar för att öppna/stänga/flytta/dela/spola/kompakta regioner.
  5. Mastern lägger data i ZooKeeper för att lagra den aktiva huvud- och metaregionserverns plats, skapa loggdelningsuppgifter, spåra regionservrarnas status.
  6. Regionsservrar läser data i ZooKeeper för att göra loggdelning, spåra huvudplatsen och klusterstatusen.
  7. Regionsservrar pratar med mastern för att rapportera regionserverstarter, laddningar.
  8. Ibland pratar regionservrar med metaregion för att kontrollera statusen för en region, skapa nya dotterregioner i regionuppdelning.
  9. REST-klienter pratar med REST-servrar för att komma åt HBase.
  10. Thrift-klienter pratar med Thrift-servrar för att komma åt HBase.
  11. Användare får åtkomst till huvudwebbgränssnittet från webbläsare.
  12. Användare får åtkomst till regionservrarnas webbgränssnitt från webbläsare.
  13. Användare får åtkomst till REST-servrarnas webbgränssnitt från webbläsare.
  14. Användare får åtkomst till Thrift-servrarnas webbgränssnitt från webbläsare.

Vissa HBase-kluster kan ha en lista med REST- eller Thrift-servrar. Både REST-servern och Thrift-servern är valfria; de behövs bara om du vill ge REST/Thrift-åtkomst till ditt HBase-kluster. För HBase är de bara andra klientapplikationer. Precis som andra HBase-servrar lyssnar de också på en huvudport för klientförfrågningar och en webbgränssnittsport.

Följande tabell visar portarna som används av klientapplikationer för att prata med ett HBase-kluster, användare för att kontrollera klusterinformation och olika HBase-komponenter för att prata med varandra.

Komponent

Konfigurationsparameter

Standardvärde

Begagnade platser

ZooKeeper

hbase.zookeeper.property.clientPort

2181

1,5,6

Master

hbase.master.port

60000

3,7

Master

hbase.master.info.port

60010

11

Regionsserver

hbase.regionserver.port

60020

2,4,8

Regionsserver

hbase.regionserver.info.port

60030

12

REST-server

hbase.rest.port **

8080

9

REST-server

hbase.rest.info.port *

8085

13

Thrift-server

hbase.regionserver.thrift.port **

9090

10

Thrift-server

hbase.thrift.info.port *

9095

14

* Introducerad i HBase version 0.94.5. De kan också specificeras med kommandoradsalternativet --infoport när du startar motsvarande server.
** De kan också anges med kommandoradsalternativet -p när du startar motsvarande server.

En port är inte listad i tabellen – HDFS namenode-porten – eftersom här inte finns en separat parameter för den. Den är konfigurerad som en del av "hbase.root" (till exempel "hdfs://namenode.foobar.com:35802/hbase") med HDFS NameNode-porten konfigurerad att vara 35802. Om inte annat anges i värdet för " hbase.root”, är standardvärdet 8020.

Förutom huvudporten lyssnar varje server i klustret (undantaget ZooKeeper) också på en webbgränssnittsport. Ett webbgränssnitt är en inbäddad Jetty-server i motsvarande server. Webbgränssnittet tillhandahåller läsbar information om motsvarande server - till exempel tråddumpen och lokala loggar. Huvudwebbgränssnittet har länkar till alla regionserverwebbgränssnitt, vilket gör det till den perfekta ingången för att kontrollera aktuell status för ett HBase-kluster.

REST/Thrift-servrarna är valfria proxyservrar till HBase. De pratar med HBase på samma sätt som andra HBase-klientapplikationer gör. De distribueras dock vanligtvis inuti HBase-klustret, tillsammans med andra HBase-servrar.

Klientapplikationer distribueras vanligtvis från HBase-klustret. REST/Thrift-klienter distribueras också utanför klustret. Om HBase-klustret ligger bakom en brandvägg bör dessa motsvarande portar vara öppna som standard:

Så här tillåter du åtkomst till klientprogram:

  • 2181 (hbase.zookeeper.property.clientPort)
  • 60000 (hbase.master.port)
  • 60020 (hbase.regionserver.port)

Så här tillåter REST/Thrift-klientåtkomst:

  • 8080 (hbase.rest.port)
  • 9090 (hbase.regionserver.thrift.port)

Om webbgränssnittsåtkomst från en brandvägg är tillåten, bör motsvarande webbgränssnittsportar också vara öppna:

  • 60010 (hbase.master.info.port)
  • 60030 (hbase.regionserver.info.port)
  • 8085 (hbase.rest.info.port)
  • 9095 (hbase.thrift.info.port)

Slutsats

I det här inlägget fick du en sammanfattning av portarna som används av HBase interna komponenter, klientapplikationer och av användare/administratörer, organiserade efter användningsfall.

Men eftersom HBase körs ovanpå HDFS är det också viktigt att känna till HDFS-portar. För att köra MapReduce med HBase måste du också känna till MapReduce-portarna. För dessa Hadoop-relaterade portar, se Hadoop Default Ports Quick Reference .

Jimmy Xiang är en mjukvaruingenjör i plattformsteamet.

> Har du frågor? Lägg upp dem på Community Forum for HBase.


  1. Vad är Express.js?

  2. Topp 10 funktioner i MongoDB Atlas

  3. Importera CSV-data som en array i MongoDB med mongoimport

  4. Redis auth-fel med Node.js och socket.io