HBase
 sql >> Base de Dados >  >> NoSQL >> HBase

Guia para usar as portas do Apache HBase


Para quem não conhece o Apache HBase (versão 0.90 e posterior), a configuração das portas de rede usadas pelo sistema pode ser um pouco complicada.

Nesta postagem do blog, você aprenderá todas as portas TCP usadas pelos diferentes processos do HBase e como e por que elas são usadas (tudo em um só lugar) — para ajudar os administradores a solucionar problemas e configurar configurações de firewall e ajudar novos desenvolvedores a depurar.

Um cluster HBase típico tem um mestre ativo, um ou vários mestres de backup e uma lista de servidores de região. Os mestres de backup são mestres em espera esperando para serem o próximo ativo. Antes de estarem ativos, eles não escutam em nenhuma porta. (Saiba mais sobre como a escalabilidade do HBase funciona aqui.)

Cada servidor no cluster atende a uma porta principal para solicitações de clientes e/ou outros servidores HBase. Cada servidor também possui um servidor Jetty Web UI incorporado.

O diagrama a seguir mostra a comunicação entre os diferentes componentes. (Os componentes azuis pertencem ao cluster HBase, geralmente atrás de um firewall; os componentes cinza são clientes externos, geralmente fora do firewall do cluster HBase; o componente verde é um navegador da Web, geralmente fora do firewall também.)


  1. Aplicativos cliente conversam com o Apache ZooKeeper para descobrir a localização do servidor mestre e da meta-região (a região raiz é removida no HBase versão 0.96).
  2. Aplicativos cliente conversam com servidores de região para ler/gravar/verificar uma tabela.
  3. Aplicativos cliente conversam com o mestre para obter informações sobre uma tabela existente, criar/remover uma tabela dinamicamente, adicionar/remover uma família de colunas.
  4. O mestre fala com os servidores da região para abrir/fechar/mover/split/flush/compactar regiões.
  5. O mestre coloca dados no ZooKeeper para armazenar a localização do servidor mestre e meta-região ativo, criar tarefas de divisão de log, rastrear o status dos servidores da região.
  6. Os servidores da região leem dados no ZooKeeper para fazer a divisão de logs, rastrear a localização do mestre e o status do cluster.
  7. Os servidores da região conversam com o mestre para relatar as inicializações e cargas do servidor da região.
  8. Ocasionalmente, os servidores da região conversam com a meta-região para verificar o status de uma região, criar novas regiões filhas na divisão de regiões.
  9. Clientes REST conversam com servidores REST para acessar o HBase.
  10. Clientes Thrift conversam com servidores Thrift para acessar o HBase.
  11. Os usuários acessam a interface principal da Web a partir de navegadores.
  12. Os usuários acessam a IU da Web dos servidores da região a partir de navegadores.
  13. Os usuários acessam a interface do usuário da Web dos servidores REST a partir de navegadores.
  14. Os usuários acessam a IU da Web dos servidores Thrift a partir de navegadores.

Alguns clusters HBase podem ter uma lista de servidores REST ou Thrift. Tanto o servidor REST quanto o servidor Thrift são opcionais; eles são necessários apenas se você deseja fornecer acesso REST/Thrift ao seu cluster HBase. Para o HBase, eles são apenas outros aplicativos clientes. Assim como outros servidores HBase, eles também escutam uma porta principal para solicitações de clientes e uma porta de interface do usuário da web.

A tabela a seguir mostra as portas usadas pelos aplicativos cliente para conversar com um cluster HBase, usuários para verificar as informações do cluster e diferentes componentes do HBase para conversar entre si.
Componente

Parâmetro de configuração

Valor padrão

Lugares usados

ZooKeeper

hbase.zookeeper.property.clientPort

2181

1,5,6

Mestre

hbase.master.port

60000

3,7

Mestre

hbase.master.info.port

60010

11

Servidor de região

hbase.regionserver.port

60020

2,4,8

Servidor de região

hbase.regionserver.info.port

60030

12

servidor REST

hbase.rest.port **

8080

9

servidor REST

hbase.rest.info.port *

8085

13

Servidor Thrift

hbase.regionserver.thrift.port **

9090

10

Servidor Thrift

hbase.thrift.info.port *

9095

14


* Introduzido no HBase versão 0.94.5. Eles também podem ser especificados com a opção de linha de comando --infoport ao iniciar o servidor correspondente.
** Eles também podem ser especificados com a opção de linha de comando -p ao iniciar o servidor correspondente.

Uma porta não está listada na tabela — a porta do namenode HDFS — porque aqui não há um parâmetro separado para ela. Ele é configurado como parte de “hbase.root” (por exemplo, “hdfs://namenode.foobar.com:35802/hbase”) com a porta HDFS NameNode configurada para ser 35802. A menos que especificado de outra forma no valor de “ hbase.root”, o padrão é 8020.

Além da porta principal, cada servidor no cluster (com exceção do ZooKeeper) também escuta uma porta de interface do usuário da web. Uma interface do usuário da web é um servidor Jetty incorporado em seu servidor correspondente. A interface do usuário da web fornece informações legíveis por humanos sobre o servidor correspondente — por exemplo, o dump de encadeamento e os logs locais. A interface de usuário da web principal tem links para todas as interfaces de usuário da web do servidor de região, o que a torna o ponto de entrada perfeito para verificar o status atual de um cluster HBase.

Os servidores REST/Thrift são proxies opcionais para o HBase. Eles se comunicam com o HBase da mesma forma que outros aplicativos clientes do HBase. No entanto, eles geralmente são implantados dentro do cluster HBase, junto com outros servidores HBase.

Os aplicativos cliente geralmente são implantados fora do cluster HBase. Os clientes REST/Thrift também são implantados fora do cluster. Se o cluster HBase estiver atrás de um firewall, essas portas correspondentes devem estar abertas por padrão:

Para permitir o acesso ao aplicativo cliente:
  • 2181 (hbase.zookeeper.property.clientPort)
  • 60.000 (hbase.master.port)
  • 60020 (hbase.regionserver.port)

Para permitir o acesso do cliente REST/Thrift:
  • 8080 (hbase.rest.port)
  • 9090 (hbase.regionserver.thrift.port)

Se o acesso à IU da Web fora do firewall for permitido, as portas correspondentes da IU da Web também deverão estar abertas:
  • 60010 (hbase.master.info.port)
  • 60030 (hbase.regionserver.info.port)
  • 8085 (hbase.rest.info.port)
  • 9095 (hbase.thrift.info.port)

Conclusão


Neste post, você obteve um resumo das portas usadas pelos componentes internos do HBase, aplicativos cliente e por usuários/administradores, organizados por caso de uso.

No entanto, como o HBase é executado em cima do HDFS, também é importante conhecer as portas HDFS. Para executar o MapReduce com HBase, você também precisa conhecer as portas do MapReduce. Para essas portas relacionadas ao Hadoop, consulte Referência rápida de portas padrão do Hadoop .

Jimmy Xiang é engenheiro de software na equipe da plataforma.

> Tem dúvidas? Poste-os no Fórum da comunidade do HBase.