sql >> Database teknologi >  >> NoSQL >> HBase

Vejledning til brug af Apache HBase-porte

For de personer, der er nye til Apache HBase (version 0.90 og nyere), kan konfigurationen af ​​netværksporte, der bruges af systemet, være lidt overvældende.

I dette blogindlæg lærer du alle de TCP-porte, der bruges af de forskellige HBase-processer, og hvordan og hvorfor de bruges (alt sammen på ét sted) - for at hjælpe administratorer med at fejlfinde og opsætte firewall-indstillinger og hjælpe nye udviklere med at fejlsøge.

En typisk HBase-klynge har en aktiv master, en eller flere backup-mastere og en liste over regionsservere. Backup-masterne er standby-mastere, der venter på at blive den næste aktive. Før de er aktive, lytter de ikke på nogen porte. (Lær mere om, hvordan HBase-skalerbarhed fungerer her.)

Hver server i klyngen lytter til en hovedport for anmodninger fra klienter og/eller andre HBase-servere. Hver server har også en integreret Jetty-web-UI-server.

Følgende diagram viser kommunikationen mellem forskellige komponenter. (Blå komponenter tilhører HBase-klyngen, normalt bag en firewall; grå komponenter er eksterne klienter, normalt uden for HBase-klyngens firewall; grøn komponent er en webbrowser, normalt også uden for firewallen.)

  1. Klientapplikationer taler med Apache ZooKeeper for at finde ud af placeringen af ​​master- og metaregionserveren (rodregionen er fjernet i HBase version 0.96).
  2. Kundeapplikationer taler med regionsservere for at læse fra/skrive til/scanne en tabel.
  3. Klientapplikationer taler med masteren for at få information om en eksisterende tabel, dynamisk oprette/fjerne en tabel, tilføje/fjerne en kolonnefamilie.
  4. Masteren taler med regionsservere for at åbne/lukke/move/split/flush/compact regioner.
  5. Masteren lægger data i ZooKeeper for at gemme den aktive master- og metaregionserverplacering, oprette logopdelingsopgaver, spore regionservernes status.
  6. Regionsservere læser data i ZooKeeper for at foretage logopdeling, spore masterplaceringen og klyngestatussen.
  7. Regionsservere taler med masteren for at rapportere regionsserver opstart, indlæsninger.
  8. Af og til taler regionsservere med metaregion for at kontrollere status for en region, oprette nye datterregioner i regionopdeling.
  9. REST-klienter taler med REST-servere for at få adgang til HBase.
  10. Thrift-klienter taler med Thrift-servere for at få adgang til HBase.
  11. Brugere får adgang til hovedweb-UI fra browsere.
  12. Brugere får adgang til regionsserveres web-UI fra browsere.
  13. Brugere får adgang til REST-servernes web-UI fra browsere.
  14. Brugere får adgang til Thrift-servernes web-UI fra browsere.

Nogle HBase-klynger kan have en liste over REST- eller Thrift-servere. Både REST-serveren og Thrift-serveren er valgfri; de er kun nødvendige, hvis du vil give REST/Thrift-adgang til din HBase-klynge. For HBase er de blot andre klientapplikationer. Ligesom andre HBase-servere lytter de også til en hovedport for klientanmodninger og en web-UI-port.

Følgende tabel viser de porte, der bruges af klientapplikationer til at tale med en HBase-klynge, brugere til at kontrollere klyngeoplysninger og forskellige HBase-komponenter til at tale med hinanden.

Komponent

Konfigurationsparameter

Standardværdi

Brugte steder

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

* Introduceret i HBase version 0.94.5. De kan også specificeres med kommandolinjeindstillingen --infoport ved opstart af den tilsvarende server.
** De kan også angives med kommandolinjeindstillingen -p ved opstart af den tilsvarende server.

Én port er ikke angivet i tabellen - HDFS-navnenodeporten - fordi her ikke er en separat parameter for den. Den er konfigureret som en del af "hbase.root" (f.eks. "hdfs://namenode.foobar.com:35802/hbase") med HDFS NameNode-porten konfigureret til at være 35802. Medmindre andet er angivet i værdien af ​​" hbase.root", er standarden 8020.

Udover hovedporten lytter hver server i klyngen (undtagen ZooKeeper) også til en web-UI-port. En web-UI er en indlejret Jetty-server i dens tilsvarende server. Web-brugergrænsefladen giver menneskelig læsbar information om den tilsvarende server - for eksempel tråddumpet og lokale logfiler. Master-web-UI'en har links til alle regionsserver-web-UI'er, hvilket gør det til det perfekte indgangspunkt til at kontrollere den aktuelle status for en HBase-klynge.

REST/Thrift-serverne er valgfri proxyer til HBase. De taler til HBase på samme måde som andre HBase-klientapplikationer gør. De er dog normalt installeret inde i HBase-klyngen sammen med andre HBase-servere.

Klientapplikationer implementeres normalt ud af HBase-klyngen. REST/Thrift-klienter er også implementeret uden for klyngen. Hvis HBase-klyngen er bag en firewall, skal disse tilsvarende porte være åbne som standard:

Sådan tillades adgang til klientapplikationer:

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

Sådan tillades REST/Thrift-klientadgang:

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

Hvis web-UI-adgang fra en firewall er tilladt, bør de tilsvarende web-UI-porte også være åbne:

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

Konklusion

I dette indlæg har du en oversigt over de porte, der bruges af HBase interne komponenter, klientapplikationer og af brugere/administratorer, organiseret efter use case.

Men fordi HBase kører oven på HDFS, er det også vigtigt at kende til HDFS-porte. For at køre MapReduce med HBase skal du også kende MapReduce-portene. For disse Hadoop-relaterede porte, se venligst Hadoop Default Ports Quick Reference .

Jimmy Xiang er softwareingeniør på platformsteamet.

> Har du spørgsmål? Send dem til fællesskabsforum for HBase.


  1. Hurtigere måde at iterere alle nøgler og værdier i redis db

  2. Få $elemMatch (projektion) til at returnere alle objekter, der matcher kriterier

  3. MongoDB sikkerhedskopiering og gendannelse

  4. MongoDB $inc