Pro nové uživatele Apache HBase (verze 0.90 a novější) může být konfigurace síťových portů používaných systémem trochu ohromující.
V tomto příspěvku na blogu se dozvíte o všech portech TCP používaných různými procesy HBase a o tom, jak a proč se používají (vše na jednom místě), abyste pomohli správcům odstraňovat problémy a nastavovat nastavení brány firewall a pomohli novým vývojářům s laděním.
Typický cluster HBase má jeden aktivní hlavní server, jeden nebo několik hlavních serverů záloh a seznam serverů oblastí. Záložní mastery jsou pohotovostní mastery čekající na další aktivní. Než budou aktivní, neposlouchají na žádném portu. (Další informace o tom, jak škálovatelnost HBase funguje zde.)
Každý server v clusteru naslouchá hlavnímu portu pro požadavky od klientů a/nebo jiných serverů HBase. Každý server má také vestavěný server webového uživatelského rozhraní Jetty.
Následující diagram ukazuje komunikaci mezi různými komponentami. (Modré komponenty patří do clusteru HBase, obvykle za firewallem; šedé komponenty jsou externí klienti, obvykle mimo firewall clusteru HBase; zelená komponenta je webový prohlížeč, obvykle také mimo firewall.)
- Klientské aplikace promluví s Apache ZooKeeper, aby zjistily umístění hlavního serveru a serveru meta oblasti (kořenová oblast je v HBase verze 0.96 odstraněna).
- Klientské aplikace komunikují s regionálními servery za účelem čtení/zápisu/skenování tabulky.
- Klientské aplikace komunikují s hlavním serverem, aby získaly informace o existující tabulce, dynamicky vytvořily/odebraly tabulku, přidaly/odebraly rodinu sloupců.
- Hlavní komunikuje s regionálními servery o otevření/zavření/přesunutí/rozdělení/vyprázdnění/kompaktu oblastí.
- Hlavní vloží data do ZooKeeperu, aby uložil aktivní hlavní server a umístění serveru metaregionu, vytvořil úlohy dělení protokolu a sledoval stav serverů regionu.
- Regionální servery čtou data v ZooKeeperu, aby provedly rozdělení protokolů, sledovaly hlavní umístění a stav clusteru.
- Regionální servery komunikují s hlavním serverem, aby hlásily spuštění a zatížení regionálního serveru.
- Občas servery regionů mluví s meta regionem, aby zkontrolovaly stav regionu, vytvořily nové dceřiné regiony v rozdělení regionů.
- Klienti REST komunikují se servery REST za účelem přístupu k HBase.
- Klienti Thrift komunikují se servery Thrift, aby získali přístup k HBase.
- Uživatelé přistupují k hlavnímu webovému uživatelskému rozhraní z prohlížečů.
- Uživatelé přistupují k webovému uživatelskému rozhraní regionálních serverů z prohlížečů.
- Uživatelé přistupují k webovému uživatelskému rozhraní serverů REST z prohlížečů.
- Uživatelé přistupují k webovému uživatelskému rozhraní serverů Thrift z prohlížečů.
Některé clustery HBase mohou mít seznam serverů REST nebo Thrift. REST server i Thrift server jsou volitelné; jsou potřeba pouze v případě, že chcete poskytnout REST/Thrift přístup ke svému clusteru HBase. Pro HBase jsou to jen další klientské aplikace. Stejně jako ostatní servery HBase také naslouchají hlavnímu portu pro požadavky klientů a portu webového uživatelského rozhraní.
Následující tabulka ukazuje porty používané klientskými aplikacemi ke komunikaci s klastrem HBase, uživatelé ke kontrole informací o klastru a různé komponenty HBase ke vzájemné komunikaci.
Komponenta | Konfigurační parametr | Výchozí hodnota | Použitá místa |
ZooKeeper |
| 2181 | 1,5,6 |
Master |
| 60000 | 3,7 |
Master |
| 60010 | 11 |
Regionální server |
| 60020 | 2,4,8 |
Regionální server |
| 60030 | 12 |
Server REST |
| 8080 | 9 |
Server REST |
| 8085 | 13 |
Thrift server |
| 9090 | 10 |
Thrift server |
| 9095 | 14 |
* Zavedeno ve verzi HBase 0.94.5. Mohou být také specifikovány volbou příkazového řádku --infoport
při spouštění odpovídajícího serveru.
** Lze je také zadat pomocí volby příkazového řádku -p
při spouštění odpovídajícího serveru.
Jeden port není v tabulce uveden – port jmenného uzlu HDFS – protože zde pro něj není samostatný parametr. Je nakonfigurován jako součást „hbase.root“ (například „hdfs://namenode.foobar.com:35802/hbase“) s portem HDFS NameNode nakonfigurovaným na 35802. Pokud není uvedeno jinak v hodnotě „ hbase.root“, výchozí je 8020.
Kromě hlavního portu naslouchá každý server v clusteru (s výjimkou ZooKeeper) také portu webového uživatelského rozhraní. Webové uživatelské rozhraní je vestavěný server Jetty v odpovídajícím serveru. Webové uživatelské rozhraní poskytuje lidem čitelné informace o odpovídajícím serveru – například výpis vláken a místní protokoly. Hlavní webové uživatelské rozhraní obsahuje odkazy na všechna webová uživatelská rozhraní regionálních serverů, což z něj činí perfektní vstupní bod pro kontrolu aktuálního stavu clusteru HBase.
Servery REST/Thrift jsou volitelnými proxy servery HBase. Hovoří s HBase stejně jako ostatní klientské aplikace HBase. Obvykle jsou však nasazeny uvnitř clusteru HBase spolu s dalšími servery HBase.
Klientské aplikace jsou obvykle nasazovány mimo cluster HBase. Klienti REST/Thrift jsou nasazeni i mimo cluster. Pokud je cluster HBase za bránou firewall, měly by být tyto odpovídající porty ve výchozím nastavení otevřené:
Povolení přístupu klientské aplikace:
- 2181 (hbase.zookeeper.property.clientPort)
- 60 000 (hbase.master.port)
- 60020 (hbase.regionserver.port)
Povolení přístupu klienta REST/Thrift:
- 8080 (hbase.rest.port)
- 9090 (hbase.regionserver.thrift.port)
Pokud je povolen přístup k webovému uživatelskému rozhraní mimo bránu firewall, měly by být také otevřené odpovídající porty webového uživatelského rozhraní:
- 60010 (hbase.master.info.port)
- 60030 (hbase.regionserver.info.port)
- 8085 (hbase.rest.info.port)
- 9095 (hbase.thrift.info.port)
Závěr
V tomto příspěvku máte shrnutí portů používaných interními komponentami HBase, klientskými aplikacemi a uživateli/správci, uspořádaných podle případu použití.
Protože však HBase běží nad HDFS, je také důležité znát porty HDFS. Chcete-li spustit MapReduce s HBase, musíte také znát porty MapReduce. Informace o těchto portech souvisejících s Hadoop naleznete v Rychlé referenční příručce výchozích portů Hadoop .
Jimmy Xiang je softwarový inženýr v týmu Platform.
> Máte otázky? Zveřejněte je na komunitním fóru pro HBase.