Voor mensen die nieuw zijn bij Apache HBase (versie 0.90 en hoger), kan de configuratie van netwerkpoorten die door het systeem worden gebruikt, een beetje overweldigend zijn.
In deze blogpost leert u alle TCP-poorten die door de verschillende HBase-processen worden gebruikt en hoe en waarom ze worden gebruikt (allemaal op één plek) - om beheerders te helpen bij het oplossen van problemen en het instellen van firewall-instellingen, en om nieuwe ontwikkelaars te helpen bij het debuggen.
Een typisch HBase-cluster heeft één actieve master, een of meerdere back-upmasters en een lijst met regioservers. De back-upmasters zijn standby-masters die wachten om de volgende actieve master te zijn. Voordat ze actief zijn, luisteren ze op geen enkele poort. (Lees hier meer over hoe HBase-schaalbaarheid werkt.)
Elke server in het cluster luistert naar een hoofdpoort voor verzoeken van clients en/of andere HBase-servers. Elke server heeft ook een ingebouwde Jetty web UI-server.
Het volgende diagram toont de communicatie tussen verschillende componenten. (Blauwe componenten behoren tot het HBase-cluster, meestal achter een firewall; grijze componenten zijn externe clients, meestal buiten de HBase-clusterfirewall; groene componenten zijn een webbrowser, meestal ook buiten de firewall.)
- Clienttoepassingen praten met Apache ZooKeeper om de locatie van de master en de metaregioserver te achterhalen (de rootregio is verwijderd in HBase-versie 0.96).
- Client-applicaties praten met regioservers om een tabel te lezen/schrijven/scannen.
- Clienttoepassingen praten met de master om informatie over een bestaande tabel te krijgen, dynamisch een tabel te maken/verwijderen, een kolomfamilie toe te voegen/te verwijderen.
- De master praat met regioservers om regio's te openen/sluiten/verplaatsen/splitsen/flushen/compact.
- De master plaatst gegevens in ZooKeeper om de actieve master- en metaregioserverlocatie op te slaan, logboeksplitsingstaken te maken en de status van regioservers te volgen.
- Regioservers lezen gegevens in ZooKeeper om logs te splitsen, de hoofdlocatie en de clusterstatus te volgen.
- Regioservers praten met de master om het opstarten en laden van de regioserver te melden.
- Af en toe praten regioservers met de metaregio om de status van een regio te controleren en nieuwe dochterregio's te maken bij het opsplitsen van regio's.
- REST-clients praten met REST-servers om toegang te krijgen tot HBase.
- Thrift-clients praten met Thrift-servers om toegang te krijgen tot HBase.
- Gebruikers hebben vanuit browsers toegang tot de hoofdweb-UI.
- Gebruikers hebben vanuit browsers toegang tot de web-UI van regioservers.
- Gebruikers hebben vanuit browsers toegang tot de web-UI van REST-servers.
- Gebruikers hebben vanuit browsers toegang tot de web-UI van Thrift-servers.
Sommige HBase-clusters hebben mogelijk een lijst met REST- of Thrift-servers. Zowel de REST-server als de Thrift-server zijn optioneel; ze zijn alleen nodig als u REST/Thrift-toegang tot uw HBase-cluster wilt bieden. Voor HBase zijn het gewoon andere clienttoepassingen. Net als andere HBase-servers luisteren ze ook naar een hoofdpoort voor clientverzoeken en een web-UI-poort.
De volgende tabel toont de poorten die door clienttoepassingen worden gebruikt om met een HBase-cluster te praten, gebruikers om clusterinformatie te controleren en verschillende HBase-componenten om met elkaar te praten.
Onderdeel | Configuratieparameter | Standaardwaarde | Gebruikte plaatsen |
ZooKeeper |
| 2181 | 1,5,6 |
Master |
| 60000 | 3,7 |
Master |
| 60010 | 11 |
Regioserver |
| 60020 | 2,4,8 |
Regioserver |
| 60030 | 12 |
REST-server |
| 8080 | 9 |
REST-server |
| 8085 | 13 |
Thrift-server |
| 9090 | 10 |
Thrift-server |
| 9095 | 14 |
* Geïntroduceerd in HBase-versie 0.94.5. Ze kunnen ook worden gespecificeerd met de opdrachtregeloptie --infoport
bij het opstarten van de bijbehorende server.
** Ze kunnen ook worden opgegeven met de opdrachtregeloptie -p
bij het opstarten van de bijbehorende server.
Eén poort staat niet in de tabel - de HDFS namenode-poort - omdat hier geen aparte parameter voor is. Het is geconfigureerd als onderdeel van "hbase.root" (bijvoorbeeld "hdfs://namenode.foobar.com:35802/hbase") met de HDFS NameNode-poort geconfigureerd als 35802. Tenzij anders aangegeven in de waarde van " hbase.root”, is de standaard 8020.
Naast de hoofdpoort luistert elke server in het cluster (behalve ZooKeeper) ook naar een web-UI-poort. Een web-UI is een embedded Jetty-server in de bijbehorende server. De web-UI biedt door mensen leesbare informatie over de bijbehorende server, bijvoorbeeld de threaddump en lokale logboeken. De hoofdweb-UI heeft koppelingen naar alle web-UI's van de regioserver, waardoor het het perfecte toegangspunt is voor het controleren van de huidige status van een HBase-cluster.
De REST/Thrift-servers zijn optionele proxy's voor HBase. Ze praten met HBase op dezelfde manier als andere HBase-clienttoepassingen. Ze worden echter meestal ingezet binnen het HBase-cluster, samen met andere HBase-servers.
Clienttoepassingen worden meestal geïmplementeerd vanuit het HBase-cluster. REST/Thrift-clients worden ook buiten het cluster geïmplementeerd. Als het HBase-cluster zich achter een firewall bevindt, moeten deze corresponderende poorten standaard open zijn:
Om toegang tot de clienttoepassing toe te staan:
- 2181 (hbase.zookeeper.property.clientPort)
- 60000 (hbase.master.port)
- 60020 (hbase.regionserver.port)
Om REST/Thrift-clienttoegang toe te staan:
- 8080 (hbase.rest.port)
- 9090 (hbase.regionserver.thrift.port)
Als web-UI-toegang vanuit de firewall is toegestaan, moeten de bijbehorende web-UI-poorten ook open zijn:
- 60010 (hbase.master.info.port)
- 60030 (hbase.regionserver.info.port)
- 8085 (hbase.rest.info.port)
- 9095 (hbase.thrift.info.port)
Conclusie
In dit bericht krijgt u een overzicht van de poorten die worden gebruikt door interne componenten van HBase, clienttoepassingen en door gebruikers/beheerders, gerangschikt op gebruikssituatie.
Omdat HBase echter bovenop HDFS draait, is het ook belangrijk om HDFS-poorten te kennen. Om MapReduce met HBase uit te voeren, moet u ook MapReduce-poorten kennen. Raadpleeg voor deze Hadoop-gerelateerde poorten de Hadoop Default Ports Quick Reference .
Jimmy Xiang is een Software Engineer in het Platform-team.
> Heeft u vragen? Post ze op het communityforum voor HBase.