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.

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.
Passo 2) Selecione a versรฃo estรกvel, conforme mostrado abaixo, versรฃo HBase 1.1.2.
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.
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.
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.
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.
Aqui estamos inserindo duas propriedades:
- Uma para o diretรณrio raiz do HBase, e
- O segundo รฉ para o diretรณrio de dados que corresponde a Funcionรกrio do zoolรณgico.
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.
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.
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 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.
Passo 4) Neste passo, vamos abrir o arquivo ~/.bashrc e especificar o caminho HBASE_HOME, conforme mostrado na captura de tela abaixo.
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.
A configuraรงรฃo restante do ZooKeeper รฉ mostrada abaixo.
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.
Em seguida, inicie os daemons do HBase com o script hbase-start.sh, conforme mostrado abaixo.
Agora verifique os processos em execuรงรฃo com o comando jps, conforme mostrado abaixo.
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>
















