Como instalar o HBase no Ubuntu: Guia passo a passo

โšก Resumo Inteligente

Instalaรงรฃo do HBase em Ubuntu O tutorial รฉ executado em trรชs modos โ€” autรดnomo, pseudo-distribuรญdo e totalmente distribuรญdo โ€” abrangendo como baixar o arquivo tarball da versรฃo, editar os arquivos hbase-env.sh e hbase-site.xml, iniciar os daemons e corrigir erros comuns de inicializaรงรฃo.

  • ๐Ÿงฉ Modos de instalaรงรฃo: O modo independente รฉ executado em uma JVM no sistema de arquivos local; os modos distribuรญdos armazenam dados em Hadoop HDFS.
  • โฌ‡๏ธ Download: Baixe o arquivo tarball binรกrio do HBase do site do Apache HBase e descompacte-o em seu diretรณrio pessoal.
  • โš™๏ธ Configuraรงรฃo: Configure as variรกveis โ€‹โ€‹de ambiente JAVA_HOME e HBASE_HOME e, em seguida, defina hbase.rootdir e os diretรณrios do ZooKeeper no arquivo hbase-site.xml.
  • โ–ถ ๏ธ Comece: Execute o script start-hbase.sh, confirme o HMaster com o comando jps e, em seguida, abra o prompt interativo usando o shell do HBase.
  • ๐ŸŒ Pseudo-distribuรญdo: Aponte hbase.rootdir para o HDFS, habilite hbase.cluster.distributed e defina o quorum e a porta do cliente do ZooKeeper.
  • ๐Ÿฉน Soluรงรฃo de problemas: Resolva erros relacionados a servidor de regiรฃo, quorum do ZooKeeper, diretรณrio raiz e tempo limite de sessรฃo editando os arquivos hosts e hbase-site.xml.

Como instalar o Apache HBase no Ubuntu em modos autรดnomo, pseudo-distribuรญdo e totalmente distribuรญdo

O Apache HBase รฉ um sistema distribuรญdo, banco de dados orientado a colunas que รฉ executado sobre o Hadoop Distributed File System (HDFS). Antes de comeรงar, certifique-se de que seja compatรญvel. Java O ambiente de execuรงรฃo estรก instalado e a variรกvel de ambiente JAVA_HOME estรก configurada; os modos pseudo-distribuรญdo e totalmente distribuรญdo tambรฉm exigem um ambiente de execuรงรฃo funcional. Hadoop instalaรงรฃo.

Modos de instalaรงรฃo do Apache HBase

O Apache HBase pode ser instalado em trรชs modos. Os recursos desses modos sรฃo mencionados abaixo.

1) Instalaรงรฃo em modo autรดnomo (sem dependรชncia do sistema Hadoop)

  • Este รฉ o modo padrรฃo do HBase.
  • Ele รฉ executado no sistema de arquivos local.
  • Nรฃo usa Hadoop HDFS.
  • Somente o daemon HMaster pode ser executado.
  • Nรฃo recomendado para ambiente de produรงรฃo.
  • Executa em uma รบnica JVM.

2) Instalaรงรฃo em modo pseudo-distribuรญdo (sistema Hadoop de nรณ รบnico + instalaรงรฃo HBase)

  • Ele roda em Hadoop HDFS.
  • Todos os serviรงos (daemons) sรฃo executados em um รบnico nรณ.
  • Recomendado para ambiente de produรงรฃo.

3) Instalaรงรฃo em modo totalmente distribuรญdo (ambiente Hadoop com vรกrios nรณs + instalaรงรฃo do HBase)

  • Ele roda em Hadoop HDFS.
  • Todos os serviรงos (daemons) sรฃo executados em todos os nรณs presentes no cluster.
  • Altamente recomendado para ambientes de produรงรฃo.

Para instalaรงรฃo do Hadoop, consulte este link. Guia de instalaรงรฃo do Hadoop.

As capturas de tela abaixo usam o HBase 1.1.2. As versรตes estรกveis โ€‹โ€‹atuais sรฃo as sรฉries HBase 2.5.x e 2.6.x (Java 8 ou 11), mas os passos de instalaรงรฃo e os arquivos de configuraรงรฃo permanecem essencialmente os mesmos.

Como baixar a versรฃo estรกvel do arquivo tar HBase

Etapa 1) Vรก para o Pรกgina oficial de downloads do Apache HBase Para baixar o HBase, clique aqui. Isso abrirรก a pรกgina de downloads, como mostrado abaixo.

Abra a pรกgina de downloads do Apache HBase em um navegador para obter o arquivo tarball da versรฃo.

Passo 2) Selecione a versรฃo estรกvel, conforme mostrado abaixo, versรฃo HBase 1.1.2.

Selecionando a versรฃo estรกvel do HBase 1.1.2 na pรกgina de download.

Passo 3) Clique em hbase-1.1.2-bin.tar.gz. Isso farรก o download do arquivo tar. Copie o arquivo tar para o local de instalaรงรฃo.

Clique no link do arquivo binรกrio hbase-1.1.2-bin.tar.gz para baixar o arquivo tar.

Como instalar o HBase em Ubuntu com modo autรดnomo

Aqui estรก o processo passo a passo para a instalaรงรฃo do HBase no modo autรดnomo. Ubuntu:

Passo 1) Execute o comando abaixo. Coloque o arquivo hbase-1.1.2-bin.tar.gz em /home/hduser.

Passo 2) Descompacte o arquivo executando o comando `$ tar -xvf hbase-1.1.2-bin.tar.gz`. Isso descompactarรก o conteรบdo e criarรก o diretรณrio `hbase-1.1.2` no local `/home/hduser`.

Passo 3) Abra o arquivo hbase-env.sh conforme mostrado abaixo e especifique o caminho JAVA_HOME no campo "location", como indicado a seguir.

Edite o arquivo hbase-env.sh para definir o caminho JAVA_HOME para o modo independente.

Passo 4) Abra o arquivo ~/.bashrc e especifique o caminho HBASE_HOME conforme mostrado abaixo.

export HBASE_HOME=/home/hduser/hbase-1.1.1
export PATH= $PATH:$HBASE_HOME/bin

O arquivo ~/.bashrc atualizado com a entrada HBASE_HOME รฉ mostrado abaixo.

Adicionando o caminho HBASE_HOME ao arquivo .bashrc para o modo independente.

Passo 5) Adicione propriedades ao arquivo. Abra o arquivo hbase-site.xml e insira as seguintes propriedades dentro dele.

hduser@ubuntu$ gedit hbase-site.xml (cรณdigo conforme abaixo)

<property>

<name>hbase.rootdir</name>

<value>file:///home/hduser/HBASE/hbase</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/HBASE/zookeeper</value>

</property>

O arquivo hbase-site.xml foi aberto em gedit รฉ mostrado abaixo.

O arquivo hbase-site.xml foi aberto em gedit com o diretรณrio raiz independente e as propriedades do ZooKeeper

Aqui estamos inserindo duas propriedades:

Todas as atividades do HMaster e do ZooKeeper apontam para este arquivo hbase-site.xml.

Passo 6) Mencione os IPs. Abra o arquivo hosts presente no diretรณrio /etc e mencione os IPs conforme mostrado abaixo.

Editar o arquivo /etc/hosts para mapear os endereรงos IP da mรกquina.

Passo 7) Agora execute o script start-hbase.sh no diretรณrio hbase-1.1.1/bin, conforme mostrado abaixo. Em seguida, vocรช pode verificar com o comando jps se o HMaster estรก em execuรงรฃo.

Saรญda do comando jps mostrando o processo HMaster em execuรงรฃo no modo independente.

Passo 8) Inicie o shell do HBase. O shell do HBase pode ser iniciado usando o shell hbase Ao executar o comando, o sistema entrarรก no modo de shell interativo, conforme mostrado na captura de tela abaixo. Uma vez no modo de shell, podemos executar todos os tipos de comandos.

O prompt do shell interativo do HBase foi iniciado com o comando hbase shell.

O modo independente nรฃo requer que os daemons do Hadoop sejam iniciados. O HBase pode ser executado de forma independente.

Modo de instalaรงรฃo pseudodistribuรญdo HBase

Este รฉ outro mรฉtodo para instalaรงรฃo do Apache HBase, conhecido como modo de instalaรงรฃo pseudo-distribuรญdo. Abaixo estรฃo os passos para instalar o HBase atravรฉs do modo pseudo-distribuรญdo.

Passo 1) Coloque hbase-1.1.2-bin.tar.gz em /home/hduser.

Passo 2) Descompacte o arquivo executando o comando `$ tar -xvf hbase-1.1.2-bin.tar.gz`. Isso descompactarรก o conteรบdo e criarรก o diretรณrio `hbase-1.1.2` no local `/home/hduser`.

Passo 3) Abra o arquivo hbase-env.sh conforme mostrado abaixo, especifique o caminho JAVA_HOME e o caminho dos servidores de regiรฃo no campo "location" e exporte o comando como mostrado abaixo.

Edite o arquivo hbase-env.sh com as variรกveis โ€‹โ€‹de ambiente JAVA_HOME e o caminho dos servidores de regiรฃo para o modo pseudo-distribuรญdo.

Passo 4) Neste passo, vamos abrir o arquivo ~/.bashrc e especificar o caminho HBASE_HOME, conforme mostrado na captura de tela abaixo.

Configurar o caminho HBASE_HOME no arquivo .bashrc para o modo pseudo-distribuรญdo.

Passo 5) Abra o arquivo hbase-site.xml e insira as seguintes propriedades (cรณdigo abaixo).

<property>

<name>hbase.rootdir</name>

<value>hdfs://localhost:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>localhost</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/home/hduser/hbase/zookeeper</value>

</property>

O arquivo hbase-site.xml com as propriedades pseudo-distribuรญdas รฉ mostrado abaixo.

hbase-site.xml com as propriedades pseudo-distribuรญdas do HDFS e do ZooKeeper

A configuraรงรฃo restante do ZooKeeper รฉ mostrada abaixo.

Continuaรงรฃo da configuraรงรฃo do ZooKeeper no arquivo hbase-site.xml para o modo pseudo-distribuรญdo.

Cada propriedade no arquivo desempenha um papel especรญfico:

  • Configurando o diretรณrio raiz do HBase na propriedade hbase.rootdir.
  • Para uma configuraรงรฃo distribuรญda, hbase.cluster.distributed deve ser definido como verdadeiro.
  • A propriedade de quorum do ZooKeeper deve ser configurada aqui.
  • A replicaรงรฃo รฉ configurada na propriedade `dfs.replication`. Por padrรฃo, definimos a replicaรงรฃo como 1. No modo totalmente distribuรญdo, vรกrios nรณs de dados estรฃo presentes, portanto, vocรช pode aumentar a replicaรงรฃo definindo um valor maior que 1 na propriedade `dfs.replication`.
  • A porta do cliente deve ser mencionada na propriedade hbase.zookeeper.property.clientPort.
  • O diretรณrio de dados do ZooKeeper pode ser especificado na propriedade hbase.zookeeper.property.dataDir.

Passo 6) Inicie primeiro os daemons do Hadoop e, em seguida, inicie os daemons do HBase, conforme mostrado abaixo. Primeiro, vocรช precisa iniciar os daemons do Hadoop usando o comando `./start-all.sh`, conforme mostrado abaixo.

Executando o comando start-all.sh para iniciar os daemons do Hadoop.

Em seguida, inicie os daemons do HBase com o script hbase-start.sh, conforme mostrado abaixo.

Iniciando os daemons do HBase com o script start-hbase.sh no modo pseudo-distribuรญdo

Agora verifique os processos em execuรงรฃo com o comando jps, conforme mostrado abaixo.

Saรญda do comando jps listando os daemons Hadoop e HBase em execuรงรฃo.

Instalaรงรฃo em modo totalmente distribuรญdo do HBase

O modo totalmente distribuรญdo estende a configuraรงรฃo pseudo-distribuรญda por um cluster real.

  • Essa configuraรงรฃo funciona no modo cluster Hadoop, onde vรกrios nรณs sรฃo criados e executados em todo o cluster.
  • A instalaรงรฃo รฉ a mesma do modo pseudo-distribuรญdo; a รบnica diferenรงa รฉ que ela serรก executada em vรกrios nรณs.
  • Os arquivos de configuraรงรฃo mencionados em hbase-site.xml e hbase-env.sh sรฃo os mesmos mencionados no modo pseudo.

No modo totalmente distribuรญdo, certifique-se de que a versรฃo do Hadoop no seu cluster corresponda ร s bibliotecas do Hadoop incluรญdas no HBase para que os daemons se comuniquem corretamente.

Soluรงรฃo de problemas de instalaรงรฃo do HBase

1) Descriรงรฃo do problema: O servidor mestre inicializa, mas os servidores regionais nรฃo inicializam.

A comunicaรงรฃo entre o servidor Master e os servidores de regiรฃo ocorre por meio de seus endereรงos IP. O Master fica ร  escuta de servidores de regiรฃo que estejam em execuรงรฃo ou que possuam o endereรงo IP 127.0.0.1. O endereรงo IP 127.0.0.1 รฉ o host local e resolve para o prรณprio host local do servidor Master.

causa:

Na comunicaรงรฃo dupla entre os servidores de regiรฃo e o servidor mestre, o servidor de regiรฃo informa continuamente ao servidor mestre que seu endereรงo IP รฉ 127.0.0.1.

Soluรงรฃo:

  • Remova o nรณ de nome do servidor mestre da entrada do host local presente no arquivo hosts.
  • Localizaรงรฃo do arquivo hosts: /etc/hosts.

O que mudar:

Abra o arquivo /etc/hosts e acesse este local.

127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost
: : 1              localhost3.localdomain3 localdomain3

Modifique a configuraรงรฃo acima conforme abaixo (remova o nome do servidor regional destacado acima).

127.0.0.1    localhost.localdomainlocalhost
: : 1 localhost3.localdomain3 localdomain3

2) Problema: Nรฃo foi possรญvel encontrar meu endereรงo: XYZ na lista de servidores de quorum do ZooKeeper.

causa:

  • O servidor ZooKeeper nรฃo pรดde ser iniciado e apresenta um erro como ".xyz" no nome do servidor.
  • O HBase tenta iniciar um servidor ZooKeeper em uma mรกquina, mas, ao mesmo tempo, a mรกquina nรฃo consegue se encontrar na configuraรงรฃo de quorum presente no arquivo hbase.zookeeper.quorum.

Soluรงรฃo:

  • Substitua o nome do host pelo nome do host apresentado na mensagem de erro.
  • Se vocรช tiver um servidor DNS, poderรก definir as seguintes configuraรงรตes no arquivo hbase-site.xml: hbase.zookeeper.dns.interface e hbase.zookeeper.dns.nameserver.

3) Declaraรงรฃo do problema: Criou-se um diretรณrio raiz para o HBase por meio do Hadoop DFS.

  • O administrador informa que vocรช precisa executar o script de migraรงรตes do HBase.
  • Ao executar esse comando, o script de migraรงรตes do HBase responde que nรฃo hรก arquivos no diretรณrio raiz.

causa:

  • Um novo diretรณrio foi criado para o HBase usando o Sistema de Arquivos Distribuรญdo do Hadoop.
  • Aqui, o HBase espera duas possibilidades:

1) O diretรณrio raiz nรฃo existe.

2) Uma instรขncia anterior do HBase jรก havia sido inicializada.

Soluรงรฃo:

  • Confirme se o diretรณrio raiz do HBase nรฃo existe atualmente ou se jรก foi inicializado por uma execuรงรฃo anterior da instรขncia do HBase.
  • Como parte da soluรงรฃo, siga estes passos.

Passo 1) Use o Hadoop DFS para excluir o diretรณrio raiz do HBase.

Etapa 2) O HBase cria e inicializa o diretรณrio automaticamente.

4) Declaraรงรฃo do problema: Eventos de expiraรงรฃo da sessรฃo do ZooKeeper

causa:

  • Os servidores HMaster ou HRegion foram desligados, lanรงando exceรงรตes.
  • Ao analisar os registros, vocรช poderรก descobrir as exceรงรตes reais que foram lanรงadas.

A seguir, sรฃo apresentadas as exceรงรตes geradas devido a um evento de expiraรงรฃo do ZooKeeper. Os eventos destacados sรฃo algumas das exceรงรตes que ocorreram no arquivo de log.

O cรณdigo dos arquivos de log รฉ exibido abaixo:

WARN org.apache.zookeeper.ClientCnxn: Exception
closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec

java.io.IOException: TIMED OUT	
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906)
WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000
INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT
INFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT]
INFO org.apache.zookeeper.ClientCnxn: Server connection successful
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e

java.io.IOException: Session Expired	 
at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589)
at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945)
ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired

Soluรงรฃo:

  • O tamanho padrรฃo da RAM รฉ de 1 GB. Para importaรงรตes demoradas, mantenha uma capacidade de RAM superior a 1 GB.
  • Aumente o tempo limite da sessรฃo do ZooKeeper.
  • Para aumentar o tempo limite da sessรฃo do ZooKeeper, modifique a seguinte propriedade no arquivo hbase-site.xml, localizado no caminho da pasta hbase/conf.
  • O tempo limite de sessรฃo padrรฃo รฉ de 60 segundos. Vocรช pode alterรก-lo para 120 segundos, conforme mencionado abaixo.
<property>
    <name> zookeeper.session.timeout </name>
    <value>1200000</value>
</property>
<property>
    <name> hbase.zookeeper.property.tickTime </name>
    <value>6000</value>
</property>

Perguntas Frequentes

O HBase precisa de um suporte. Java ambiente de execuรงรฃo com JAVA_HOME definido. Os modos pseudo-distribuรญdo e totalmente distribuรญdo tambรฉm precisam de um ambiente de execuรงรฃo. Hadoop HDFS cluster. O modo autรดnomo precisa apenas de Java, porque utiliza o sistema de arquivos local e inclui seu prรณprio ZooKeeper.

Nรฃo se aplica ao modo independente, que รฉ executado no sistema de arquivos local em uma รบnica JVM sem os daemons do Hadoop. Os modos pseudo-distribuรญdo e totalmente distribuรญdo exigem o Hadoop, pois armazenam dados no HDFS e dependem de seus NameNodes e DataNodes.

Edite o arquivo conf/hbase-env.sh e adicione a linha export JAVA_HOME=/caminho/para/seu/jdk, apontando para o diretรณrio raiz do JDK. O HBase lรช esse valor ao iniciar. Vocรช tambรฉm pode exportar a variรกvel JAVA_HOME no arquivo ~/.bashrc para que o shell a encontre. Java globalmente.

Este guia mostra o HBase 1.1.2, mas as versรตes estรกveis โ€‹โ€‹atuais sรฃo as linhas HBase 2.5.x e 2.6.x, com a versรฃo 3.0 em beta. Versรตes mais recentes precisam de atualizaรงรฃo. Java 8 ou 11. Os passos de download, configuraรงรฃo e inicializaรงรฃo permanecem essencialmente os mesmos.

Execute o comando jps e procure pelo processo HMaster, alรฉm de HRegionServer e HQuorumPeer em modos distribuรญdos. Vocรช tambรฉm pode abrir a interface web do HBase Master ou executar o comando status dentro do arquivo. shell hbase Para confirmar se o cluster estรก ativo.

Por padrรฃo, o HBase Master escuta na porta 16000 com uma interface web na porta 16010, e cada Region Server usa a porta 16020 com uma interface web na porta 16030. O ZooKeeper escuta na porta do cliente 2181, que รฉ configurada atravรฉs da propriedade `hbase.zookeeper.property.clientPort`.

Assistentes de IA e ferramentas de anรกlise de logs baseadas em aprendizado de mรกquina examinam os logs do HBase e do ZooKeeper, agrupam-nos e revelam a causa raiz de erros como expiraรงรฃo de sessรฃo ou falhas de quorum. Eles sugerem correรงรตes de configuraรงรฃo, embora um engenheiro deva confirmar cada alteraรงรฃo antes de aplicรก-la.

Sim. Travas deslizantes portรกteis Copiloto do GitHub Cria rascunhos de trechos de hbase-site.xml, entradas de hbase-env.sh e scripts de inicializaรงรฃo do shell a partir de um breve comentรกrio. RevConfira as sugestรตes de nomes de propriedades, caminhos e portas corretos antes de executรก-las, pois a configuraรงรฃo gerada pode fazer referรชncia a valores padrรฃo desatualizados.

Resuma esta postagem com: