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

Guida all'uso delle porte HBase di Apache

Per coloro che non conoscono Apache HBase (versione 0.90 e successive), la configurazione delle porte di rete utilizzate dal sistema può essere un po' opprimente.

In questo post del blog imparerai tutte le porte TCP utilizzate dai diversi processi HBase e come e perché vengono utilizzate (tutte in un unico posto) — per aiutare gli amministratori a risolvere i problemi e configurare le impostazioni del firewall e aiutare i nuovi sviluppatori a eseguire il debug.

Un tipico cluster HBase ha un master attivo, uno o più master di backup e un elenco di server regionali. I master di backup sono master in standby in attesa di essere il successivo attivo. Prima di essere attivi, non sono in ascolto su nessuna porta. (Ulteriori informazioni su come funziona la scalabilità HBase qui.)

Ciascun server nel cluster è in ascolto su una porta principale per le richieste dei client e/o di altri server HBase. Ciascun server dispone inoltre di un server dell'interfaccia utente Web Jetty incorporato.

Il diagramma seguente mostra la comunicazione tra i diversi componenti. (I componenti blu appartengono al cluster HBase, di solito dietro un firewall; i componenti grigi sono client esterni, di solito al di fuori del firewall del cluster HBase; il componente verde è un browser Web, di solito anche all'esterno del firewall.)

  1. Le applicazioni client parlano con Apache ZooKeeper per scoprire la posizione del server principale e della meta regione (la regione radice viene rimossa in HBase versione 0.96).
  2. Le applicazioni client comunicano con i server della regione per leggere/scrivere/scansionare una tabella.
  3. Le applicazioni client parlano con il master per ottenere informazioni su una tabella esistente, creare/rimuovere dinamicamente una tabella, aggiungere/rimuovere una famiglia di colonne.
  4. Il master parla con i server della regione per aprire/chiudere/spostare/dividere/flush/compattare le regioni.
  5. Il master inserisce i dati in ZooKeeper per archiviare la posizione del server master e della meta regione attiva, creare attività di suddivisione dei registri, tenere traccia degli stati dei server della regione.
  6. I server della regione leggono i dati in ZooKeeper per eseguire la suddivisione dei registri, tenere traccia della posizione principale e dello stato del cluster.
  7. I server della regione parlano con il master per segnalare avviamenti e carichi del server della regione.
  8. Occasionalmente, i server delle regioni comunicano con la meta regione per verificare lo stato di una regione, creare nuove regioni figlie nella divisione delle regioni.
  9. I client REST comunicano con i server REST per accedere a HBase.
  10. I client dell'usato parlano con i server dell'usato per accedere a HBase.
  11. Gli utenti accedono all'interfaccia utente web principale dai browser.
  12. Gli utenti accedono all'interfaccia utente web dei server della regione dai browser.
  13. Gli utenti accedono all'interfaccia utente web dei server REST dai browser.
  14. Gli utenti accedono all'interfaccia utente web dei server Thrift dai browser.

Alcuni cluster HBase possono avere un elenco di server REST o Thrift. Sia il server REST che il server Thrift sono opzionali; sono necessari solo se si desidera fornire l'accesso REST/Thrift al cluster HBase. Per HBase, sono solo altre applicazioni client. Proprio come altri server HBase, ascoltano anche una porta principale per le richieste dei client e una porta dell'interfaccia utente Web.

La tabella seguente mostra le porte utilizzate dalle applicazioni client per comunicare con un cluster HBase, gli utenti per controllare le informazioni sul cluster e diversi componenti HBase per comunicare tra loro.

Componente

Parametro di configurazione

Valore predefinito

Luoghi usati

ZooKeeper

hbase.zookeeper.property.clientPort

2181

1,5,6

Master

hbase.master.port

60000

3,7

Master

hbase.master.info.port

60010

11

Server regionale

hbase.regionserver.port

60020

2,4,8

Server regionale

hbase.regionserver.info.port

60030

12

Server REST

hbase.rest.port **

8080

9

Server REST

hbase.rest.info.port *

8085

13

Server dell'usato

hbase.regionserver.thrift.port **

9090

10

Server dell'usato

hbase.thrift.info.port *

9095

14

* Introdotto nella versione HBase 0.94.5. Possono anche essere specificati con l'opzione della riga di comando --infoport all'avvio del server corrispondente.
** Possono essere specificati anche con l'opzione della riga di comando -p all'avvio del server corrispondente.

Una porta non è elencata nella tabella, la porta del namenode HDFS, perché qui non c'è un parametro separato per essa. È configurato come parte di "hbase.root" (ad esempio, "hdfs://namenode.foobar.com:35802/hbase") con la porta HDFS NameNode configurata per essere 35802. Se non diversamente specificato nel valore di " hbase.root", il valore predefinito è 8020.

Oltre alla porta principale, ogni server nel cluster (tranne ZooKeeper) ascolta anche una porta dell'interfaccia utente Web. Un'interfaccia utente Web è un server Jetty incorporato nel server corrispondente. L'interfaccia utente Web fornisce informazioni leggibili dall'utente sul server corrispondente, ad esempio il dump del thread e i log locali. L'interfaccia utente Web principale ha collegamenti a tutte le interfacce utente Web del server della regione, il che la rende il punto di ingresso perfetto per controllare lo stato corrente di un cluster HBase.

I server REST/Thrift sono proxy opzionali per HBase. Parlano con HBase allo stesso modo di altre applicazioni client HBase. Tuttavia, vengono solitamente distribuiti all'interno del cluster HBase, insieme ad altri server HBase.

Le applicazioni client vengono in genere distribuite al di fuori del cluster HBase. Anche i client REST/Thrift vengono distribuiti all'esterno del cluster. Se il cluster HBase è protetto da un firewall, queste porte corrispondenti dovrebbero essere aperte per impostazione predefinita:

Per consentire l'accesso all'applicazione client:

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

Per consentire l'accesso al client REST/Thrift:

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

Se è consentito l'accesso all'interfaccia utente Web dall'esterno del firewall, anche le porte dell'interfaccia utente Web corrispondenti dovrebbero essere aperte:

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

Conclusione

In questo post, hai un riepilogo delle porte utilizzate dai componenti interni di HBase, dalle applicazioni client e dagli utenti/amministratori, organizzate per caso d'uso.

Tuttavia, poiché HBase viene eseguito su HDFS, è anche importante conoscere le porte HDFS. Per eseguire MapReduce con HBase, è necessario conoscere anche le porte di MapReduce. Per queste porte relative a Hadoop, fare riferimento a Guida rapida alle porte predefinite Hadoop .

Jimmy Xiang è un ingegnere del software nel team della piattaforma.

> Hai domande? Pubblicali nel Forum della community per HBase.