Neste tutorial, você aprenderá,
- Modos de instalação do Apache HBase
- Como baixar a versão estável do arquivo tar Hbase
- Hbase - instalação em modo autônomo
- Hbase - modo pseudo-distribuído de instalação
- Hbase - instalação em modo totalmente distribuído
- Solução de problemas de instalação do HBase
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
- Apenas o daemon HMaster pode ser executado
- Não recomendado para ambiente de produção
- É executado em um único JVM
2) Instalação em modo pseudo-distribuído (sistema Hadoop de nó único + instalação HBase)
- Ele roda em Hadoop HDFS
- Todos os Daemons são executados em um único nó
- Recomendado para ambiente de produção
3) Instalação em modo totalmente distribuído (ambiente MultinodeHadoop + instalação HBase)
- Ele roda em Hadoop HDFS
- Todos os daemons serão executados em todos os nós presentes no cluster
- Altamente recomendado para ambiente de produção
Para instalação do Hadoop, consulte este URL aqui
Como baixar a versão estável do arquivo tar Hbase
Etapa 1) Acesse o link aqui para fazer o download do HBase. Isso abrirá uma página da web conforme mostrado abaixo.
Etapa 2) Selecione a versão estável, conforme mostrado abaixo, versão 1.1.2
Etapa 3) Clique em hbase-1.1.2-bin.tar.gz. Ele irá baixar o arquivo tar. Copie o arquivo tar em um local de instalação.
Hbase - Instalação em modo autônomo:
A instalação é realizada no Ubuntu com o Hadoop já instalado.
Etapa 1) Coloque hbase-1.1.2-bin.tar.gz em / home / hduser
Etapa 2) Descompacte-o executando o comando $ tar -xvf hbase-1.1.2-bin.tar.gz . Ele descompactará o conteúdo e criará hbase-1.1.2 no local / home / hduser
Etapa 3) Abra hbase-env.sh como abaixo e mencione o caminho JAVA_HOME no local.
Etapa 4) Abra o arquivo ~ / .bashrc e mencione o caminho HBASE_HOME conforme mostrado abaixo
export HBASE_HOME = / home / hduser / hbase-1.1.1 export PATH = $ PATH: $ HBASE_HOME / bin |
Etapa 5) Abra hbase-site.xml e coloque as seguintes propriedades dentro do arquivo
hduser @ ubuntu $ gedit hbase-site.xml (código como abaixo)
hbase.rootdir file:///home/hduser/HBASE/hbase hbase.zookeeper.property.dataDir /home/hduser/HBASE/zookeeper
Aqui estamos colocando duas propriedades
- Um para o diretório raiz do HBase e
- O segundo para o diretório de dados corresponde ao ZooKeeper.
Todas as atividades do HMaster e ZooKeeper apontam para este hbase-site.xml.
Etapa 6) Abra o arquivo hosts presente em / etc. localização e mencione os IPs conforme mostrado abaixo.
Etapa 7) Agora execute Start-hbase.sh no local hbase-1.1.1 / bin conforme mostrado abaixo.
E podemos verificar pelo comando jps para ver se o HMaster está rodando ou não.
Passo 8) O shell do HBase pode começar usando "shell hbase" e entrará no modo de shell interativo, conforme mostrado na captura de tela abaixo. Assim que entrar no modo shell, podemos executar todos os tipos de comandos.
O modo autônomo não requer que daemons do Hadoop sejam iniciados. O HBase pode ser executado de forma independente.
Hbase - modo de instalação pseudo-distribuído:
Este é outro método de instalação do Apache Hbase, conhecido como modo Pseudo Distribuído de Instalação. Abaixo estão as etapas para instalar o HBase por meio desse método.
Etapa 1) Coloque hbase-1.1.2-bin.tar.gz em / home / hduser
Etapa 2) Descompacte-o executando o comando $ tar -xvf hbase-1.1.2-bin.tar.gz . Ele descompactará o conteúdo e criará hbase-1.1.2 no local / home / hduser
Etapa 3) Abra hbase-env.sh conforme a seguir e mencione o caminho JAVA_HOME e o caminho dos servidores de região no local e exporte o comando conforme mostrado
Etapa 4) Nesta etapa, vamos abrir o arquivo ~ / .bashrc e mencionar o caminho HBASE_HOME conforme mostrado na captura de tela.
Etapa 5) Abra o HBase-site.xml e mencione as propriedades abaixo no arquivo. (Codifique como abaixo)
hbase.rootdir hdfs://localhost:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum localhost dfs.replication 1 hbase.zookeeper.property.clientPort 2181 hbase.zookeeper.property.dataDir /home/hduser/hbase/zookeeper
- Configurando o diretório raiz do Hbase nesta propriedade
- Para configuração distribuída, temos que definir esta propriedade
- A propriedade de quorum ZooKeeper deve ser configurada aqui
- Configuração de replicação feita nesta propriedade. Por padrão, estamos colocando a replicação como 1.
No modo totalmente distribuído, vários nós de dados estão presentes para que possamos aumentar a replicação, colocando mais de 1 valor na propriedade dfs.replication
- A porta do cliente deve ser mencionada nesta propriedade
- O diretório de dados do ZooKeeper pode ser mencionado nesta propriedade
Etapa 6) Inicie os daemons do Hadoop primeiro e, depois disso, inicie os daemons do HBase conforme mostrado abaixo
Aqui, primeiro você deve iniciar os daemons do Hadoop usando o comando "./start-all.sh" conforme mostrado abaixo.
Depois de iniciar os daemons Hbase por hbase-start.sh
Agora verifique jps
Hbase - Instalação em modo totalmente distribuído: -
- Essa configuração funcionará no modo de cluster Hadoop, em que vários nós são gerados no cluster e em execução.
- A instalação é igual ao modo pseudo distribuído; a única diferença é que ele irá se espalhar 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 pseudo modo.
Solução de problemas de instalação do HBase
1) Declaração do problema: o servidor mestre é inicializado, mas os servidores de região não são inicializados
A comunicação entre os servidores Master e regionais por meio de seus endereços IP. Como a maneira como o Master vai ouvir se os servidores da região estão em execução ou com o endereço IP 127.0.0.1. O endereço IP 127.0.0.1 que é o host local e é resolvido para o próprio host local do servidor mestre.
Causa:
Na comunicação dupla entre os servidores de região e mestre, o servidor de região continuamente informa ao servidor mestre sobre seus endereços IP são 127.0.0.1.
Solução:
- Tem que remover o nó do nome do servidor mestre do host local que está presente no arquivo de hosts
- Localização do arquivo host / etc / hosts
O que mudar:
Abra /etc./hosts e vá para este local
127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost: : 1 localhost3.localdomain3 localdomain3
Modifique a configuração acima como abaixo (remova o nome do servidor da região conforme destacado acima)
127.0.0.1 localhost.localdomainlocalhost: : 1 localhost3.localdomain3 localdomain3
2) Declaração do problema: Não foi possível encontrar meu endereço: XYZ na lista de servidores de quorum Zookeeper
Causa:
- O servidor ZooKeeper não conseguiu iniciar e irá lançar um erro como .xyz no nome do servidor.
- O HBase tenta iniciar um servidor ZooKeeper em alguma máquina, mas ao mesmo tempo a máquina não consegue encontrar a configuração de quorum, ou seja, presente no arquivo de configuração HBase.zookeeper.quorum .
Solução:-
- Tem que substituir o nome do host por um nome de host que é apresentado na mensagem de erro
- Suponha que temos um servidor DNS, então podemos definir as configurações abaixo em HBase-site.xml.
- HBase.zookeeper.dns.interface
- HBase.zookeeper.dns.nameserver
3) Declaração do problema: diretório raiz criado para HBase por meio do Hadoop DFS
- O Mestre diz que você precisa executar o script de migração do HBase.
- Ao executar isso , o script de migração do HBase responde como nenhum arquivo no diretório raiz .
Causa:
- Criação de um novo diretório para HBase usando o sistema de arquivos Hadoop Distributed
- Aqui, o HBase espera duas possibilidades
1) O diretório raiz não existe
2) Instância de execução anterior do HBase inicializada antes
Solução:
- Verifique se o diretório raiz do HBase não existe atualmente ou foi inicializado por uma execução anterior da instância do HBase.
- Como parte da solução, temos que seguir etapas
Etapa 1) Usando Hadoop dfs para excluir o diretório raiz do HBase
Etapa 2) O HBase cria e inicializa o diretório sozinho
4) Declaração do problema: eventos expirados da sessão do Zookeeper
Causa:
- Servidores HMaster ou HRegion desligando por meio do lançamento de exceções
- Se observarmos os logs, podemos descobrir as exceções reais que lançaram
O seguinte mostra a exceção lançada por causa do evento expirado do Zookeeper. Os eventos destacados são algumas das exceções ocorridas no arquivo de log
Código dos arquivos de log conforme mostrado abaixo:
WARN org.apache.zookeeper.ClientCnxn: Exceptionclosing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ecjava.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: 5000INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORTINFO 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 successfulWARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65ejava.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 é 1 GB. Para fazer importações de longa duração, mantivemos a capacidade de RAM em mais de 1 GB.
- Tem que aumentar o tempo limite da sessão para o Zookeeper.
- Para aumentar o tempo de sessão fora do Zookeeper, temos que modificar a seguinte propriedade em "hbase-site.xml" que está presente no caminho da pasta hbase / conf.
- O tempo limite padrão da sessão é 60 segundos. Podemos alterá-lo para 120 segundos conforme mencionado abaixo
zookeeper.session.timeout 1200000 hbase.zookeeper.property.tickTime 6000