HBase - Instalação
Este capítulo explica como o HBase é instalado e configurado inicialmente. Java e Hadoop são necessários para prosseguir com o HBase, portanto, você deve baixar e instalar java e Hadoop em seu sistema.
Configuração de pré-instalação
Antes de instalar o Hadoop no ambiente Linux, precisamos configurar o Linux usando ssh(Capsula segura). Siga as etapas fornecidas abaixo para configurar o ambiente Linux.
Criação de um usuário
Em primeiro lugar, é recomendável criar um usuário separado para o Hadoop para isolar o sistema de arquivos Hadoop do sistema de arquivos Unix. Siga as etapas abaixo para criar um usuário.
- Abra a raiz usando o comando “su”.
- Crie um usuário a partir da conta root usando o comando “useradd username”.
- Agora você pode abrir uma conta de usuário existente usando o comando “su username”.
Abra o terminal Linux e digite os seguintes comandos para criar um usuário.
$ su
password:
# useradd hadoop
# passwd hadoop
New passwd:
Retype new passwd
Configuração e geração de chave SSH
A configuração do SSH é necessária para executar diferentes operações no cluster, como iniciar, parar e operações de shell daemon distribuído. Para autenticar diferentes usuários do Hadoop, é necessário fornecer um par de chaves pública / privada para um usuário do Hadoop e compartilhá-lo com diferentes usuários.
Os comandos a seguir são usados para gerar um par de valores-chave usando SSH. Copie o formulário de chaves públicas id_rsa.pub para authorized_keys e forneça as permissões de proprietário, leitura e gravação para o arquivo authorized_keys respectivamente.
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
Verificar ssh
ssh localhost
Instalando Java
Java é o principal pré-requisito para Hadoop e HBase. Em primeiro lugar, você deve verificar a existência de java em seu sistema usando “java -version”. A sintaxe do comando da versão java é fornecida abaixo.
$ java -version
Se tudo funcionar bem, você receberá a seguinte saída.
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)
Se o java não estiver instalado em seu sistema, siga as etapas abaixo para instalar o java.
Passo 1
Baixe o java (JDK <versão mais recente> - X64.tar.gz) visitando o seguinte link Oracle Java .
Então jdk-7u71-linux-x64.tar.gz será baixado em seu sistema.
Passo 2
Geralmente, você encontrará o arquivo java baixado na pasta Downloads. Verifique e extraia ojdk-7u71-linux-x64.gz arquivo usando os seguintes comandos.
$ cd Downloads/
$ ls
jdk-7u71-linux-x64.gz
$ tar zxf jdk-7u71-linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-linux-x64.gz
etapa 3
Para disponibilizar o java a todos os usuários, você deve movê-lo para o local “/ usr / local /”. Abra o root e digite os seguintes comandos.
$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit
Passo 4
Para configurar PATH e JAVA_HOME variáveis, adicione os seguintes comandos para ~/.bashrc Arquivo.
export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH= $PATH:$JAVA_HOME/bin
Agora aplique todas as alterações no sistema em execução atual.
$ source ~/.bashrc
Etapa 5
Use os seguintes comandos para configurar alternativas java:
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2
# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar
Agora verifique o java -version comando do terminal como explicado acima.
Baixando Hadoop
Depois de instalar o java, você deve instalar o Hadoop. Em primeiro lugar, verifique a existência do Hadoop usando o comando “versão do Hadoop” conforme mostrado abaixo.
hadoop version
Se tudo funcionar bem, você receberá a seguinte saída.
Hadoop 2.6.0
Compiled by jenkins on 2014-11-13T21:10Z
Compiled with protoc 2.5.0
From source with checksum 18e43357c8f927c0695f1e9522859d6a
This command was run using
/home/hadoop/hadoop/share/hadoop/common/hadoop-common-2.6.0.jar
Se o seu sistema não conseguir localizar o Hadoop, faça download do Hadoop em seu sistema. Siga os comandos fornecidos abaixo para fazer isso.
Baixe e extraia o hadoop-2.6.0 da Apache Software Foundation usando os comandos a seguir.
$ su
password:
# cd /usr/local
# wget http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop-
2.6.0/hadoop-2.6.0-src.tar.gz
# tar xzf hadoop-2.6.0-src.tar.gz
# mv hadoop-2.6.0/* hadoop/
# exit
Instalando Hadoop
Instale o Hadoop em qualquer um dos modos necessários. Aqui, estamos demonstrando as funcionalidades do HBase no modo pseudo distribuído, portanto, instale o Hadoop no modo pseudo distribuído.
As etapas a seguir são usadas para instalar Hadoop 2.4.1.
Etapa 1 - Configurando o Hadoop
Você pode definir variáveis de ambiente Hadoop anexando os seguintes comandos a ~/.bashrc Arquivo.
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
Agora aplique todas as alterações no sistema em execução atual.
$ source ~/.bashrc
Etapa 2 - Configuração do Hadoop
Você pode encontrar todos os arquivos de configuração do Hadoop no local “$ HADOOP_HOME / etc / hadoop”. Você precisa fazer alterações nesses arquivos de configuração de acordo com sua infraestrutura Hadoop.
$ cd $HADOOP_HOME/etc/hadoop
Para desenvolver programas Hadoop em java, você deve redefinir a variável de ambiente java em hadoop-env.sh arquivo substituindo JAVA_HOME valor com a localização de java em seu sistema.
export JAVA_HOME=/usr/local/jdk1.7.0_71
Você terá que editar os seguintes arquivos para configurar o Hadoop.
core-site.xml
o core-site.xml arquivo contém informações como o número da porta usado para a instância do Hadoop, memória alocada para o sistema de arquivos, limite de memória para armazenamento de dados e o tamanho dos buffers de leitura / gravação.
Abra core-site.xml e adicione as seguintes propriedades entre as tags <configuration> e </configuration>.
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
o hdfs-site.xml arquivo contém informações como o valor dos dados de replicação, caminho do namenode e caminho do datanode de seus sistemas de arquivos locais, onde você deseja armazenar a infraestrutura do Hadoop.
Vamos supor os seguintes dados.
dfs.replication (data replication value) = 1
(In the below given path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode
(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode
Abra este arquivo e adicione as seguintes propriedades entre as marcas <configuration>, </configuration>.
<configuration>
<property>
<name>dfs.replication</name >
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value>
</property>
</configuration>
Note: No arquivo acima, todos os valores de propriedade são definidos pelo usuário e você pode fazer alterações de acordo com sua infraestrutura Hadoop.
yarn-site.xml
Este arquivo é usado para configurar o yarn no Hadoop. Abra o arquivo yarn-site.xml e adicione a seguinte propriedade entre <configuration $ gt ;, </ configuration $ gt; tags neste arquivo.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
mapred-site.xml
Este arquivo é usado para especificar qual estrutura MapReduce estamos usando. Por padrão, o Hadoop contém um modelo de yarn-site.xml. Em primeiro lugar, é necessário copiar o arquivo demapred-site.xml.template para mapred-site.xml arquivo usando o seguinte comando.
$ cp mapred-site.xml.template mapred-site.xml
Abrir mapred-site.xml arquivo e adicione as seguintes propriedades entre as marcas <configuration> e </configuration>.
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Verificando a instalação do Hadoop
As etapas a seguir são usadas para verificar a instalação do Hadoop.
Etapa 1 - Configuração do Nó de Nome
Configure o namenode usando o comando “hdfs namenode -format” como segue.
$ cd ~
$ hdfs namenode -format
O resultado esperado é o seguinte.
10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/
Etapa 2 - Verificar Hadoop dfs
O seguinte comando é usado para iniciar o dfs. Executar este comando iniciará seu sistema de arquivos Hadoop.
$ start-dfs.sh
A saída esperada é a seguinte.
10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-
2.4.1/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
Etapa 3 - Verificação do script do Yarn
O seguinte comando é usado para iniciar o script yarn. Executar este comando iniciará seus daemons de yarn.
$ start-yarn.sh
A saída esperada é a seguinte.
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop-
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out
Etapa 4 - Acessando o Hadoop no navegador
O número da porta padrão para acessar o Hadoop é 50070. Use o seguinte url para obter os serviços do Hadoop em seu navegador.
http://localhost:50070
Etapa 5 - Verificar todos os aplicativos do cluster
O número da porta padrão para acessar todos os aplicativos do cluster é 8088. Use o seguinte url para visitar este serviço.
http://localhost:8088/
Instalando HBase
Podemos instalar o HBase em qualquer um dos três modos: modo autônomo, modo pseudo-distribuído e modo totalmente distribuído.
Instalando HBase em modo autônomo
Baixe a última versão estável do formulário HBase http://www.interior-dsgn.com/apache/hbase/stable/usando o comando “wget” e extraia-o usando o comando tar “zxvf”. Veja o seguinte comando.
$cd usr/local/
$wget http://www.interior-dsgn.com/apache/hbase/stable/hbase-0.98.8-
hadoop2-bin.tar.gz
$tar -zxvf hbase-0.98.8-hadoop2-bin.tar.gz
Mude para o modo de superusuário e mova a pasta HBase para / usr / local conforme mostrado abaixo.
$su
$password: enter your password here
mv hbase-0.99.1/* Hbase/
Configurando HBase no modo autônomo
Antes de prosseguir com o HBase, você deve editar os arquivos a seguir e configurar o HBase.
hbase-env.sh
Defina o java Home para HBase e abra hbase-env.sharquivo da pasta conf. Edite a variável de ambiente JAVA_HOME e altere o caminho existente para sua variável JAVA_HOME atual, conforme mostrado abaixo.
cd /usr/local/Hbase/conf
gedit hbase-env.sh
Isso abrirá o arquivo env.sh do HBase. Agora substitua o existenteJAVA_HOME valor com seu valor atual, conforme mostrado abaixo.
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
hbase-site.xml
Este é o principal arquivo de configuração do HBase. Defina o diretório de dados em um local apropriado abrindo a pasta inicial do HBase em / usr / local / HBase. Dentro da pasta conf, você encontrará vários arquivos, abra ohbase-site.xml arquivo como mostrado abaixo.
#cd /usr/local/HBase/
#cd conf
# gedit hbase-site.xml
Dentro de hbase-site.xmlarquivo, você encontrará as marcas <configuration> e </configuration>. Dentro deles, defina o diretório HBase sob a chave de propriedade com o nome “hbase.rootdir” conforme mostrado abaixo.
<configuration>
//Here you have to set the path where you want HBase to store its files.
<property>
<name>hbase.rootdir</name>
<value>file:/home/hadoop/HBase/HFiles</value>
</property>
//Here you have to set the path where you want HBase to store its built in zookeeper files.
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
</configuration>
Com isso, a parte de instalação e configuração do HBase foi concluída com sucesso. Podemos iniciar o HBase usandostart-hbase.shscript fornecido na pasta bin do HBase. Para isso, abra o HBase Home Folder e execute o script de início do HBase conforme mostrado abaixo.
$cd /usr/local/HBase/bin
$./start-hbase.sh
Se tudo correr bem, quando você tentar executar o script de início do HBase, aparecerá uma mensagem dizendo que o HBase foi iniciado.
starting master, logging to /usr/local/HBase/bin/../logs/hbase-tpmaster-localhost.localdomain.out
Instalando HBase em modo pseudo-distribuído
Vamos agora verificar como o HBase está instalado no modo pseudo-distribuído.
Configurando HBase
Antes de continuar com o HBase, configure o Hadoop e o HDFS em seu sistema local ou em um sistema remoto e certifique-se de que estejam em execução. Pare o HBase se ele estiver em execução.
hbase-site.xml
Edite o arquivo hbase-site.xml para adicionar as seguintes propriedades.
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
Ele mencionará em qual modo o HBase deve ser executado. No mesmo arquivo do sistema de arquivos local, altere o hbase.rootdir, o endereço da sua instância HDFS, usando a sintaxe hdfs: //// URI. Estamos executando o HDFS no localhost na porta 8030.
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8030/hbase</value>
</property>
Iniciando HBase
Após o término da configuração, navegue até a pasta inicial do HBase e inicie o HBase usando o seguinte comando.
$cd /usr/local/HBase
$bin/start-hbase.sh
Note: Antes de iniciar o HBase, verifique se o Hadoop está em execução.
Verificando o diretório HBase em HDFS
HBase cria seu diretório em HDFS. Para ver o diretório criado, navegue até Hadoop bin e digite o seguinte comando.
$ ./bin/hadoop fs -ls /hbase
Se tudo correr bem, você receberá a seguinte saída.
Found 7 items
drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/.tmp
drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/WALs
drwxr-xr-x - hbase users 0 2014-06-25 18:48 /hbase/corrupt
drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/data
-rw-r--r-- 3 hbase users 42 2014-06-25 18:41 /hbase/hbase.id
-rw-r--r-- 3 hbase users 7 2014-06-25 18:41 /hbase/hbase.version
drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/oldWALs
Iniciando e parando um mestre
Usando o “local-master-backup.sh” você pode iniciar até 10 servidores. Abra a pasta pessoal do HBase, masterize e execute o seguinte comando para iniciá-lo.
$ ./bin/local-master-backup.sh 2 4
Para matar um mestre de backup, você precisa de seu ID de processo, que será armazenado em um arquivo chamado “/tmp/hbase-USER-X-master.pid.” você pode matar o backup master usando o seguinte comando.
$ cat /tmp/hbase-user-1-master.pid |xargs kill -9
Iniciando e parando RegionServers
Você pode executar vários servidores de região de um único sistema usando o seguinte comando.
$ .bin/local-regionservers.sh start 2 3
Para parar um servidor de região, use o seguinte comando.
$ .bin/local-regionservers.sh stop 3
Iniciando HBaseShell
Depois de instalar o HBase com sucesso, você pode iniciar o HBase Shell. A seguir, está a sequência de etapas que devem ser seguidas para iniciar o shell do HBase. Abra o terminal e faça login como superusuário.
Inicie o sistema de arquivos Hadoop
Navegue pela pasta sbin inicial do Hadoop e inicie o sistema de arquivos Hadoop conforme mostrado abaixo.
$cd $HADOOP_HOME/sbin
$start-all.sh
Iniciar HBase
Navegue pela pasta bin do diretório raiz do HBase e inicie o HBase.
$cd /usr/local/HBase
$./bin/start-hbase.sh
Iniciar o servidor mestre HBase
Este será o mesmo diretório. Inicie como mostrado abaixo.
$./bin/local-master-backup.sh start 2 (number signifies specific
server.)
Iniciar região
Inicie o servidor da região conforme mostrado abaixo.
$./bin/./local-regionservers.sh start 3
Inicie o HBase Shell
Você pode iniciar o shell do HBase usando o seguinte comando.
$cd bin
$./hbase shell
Isso lhe dará o prompt do shell do HBase, conforme mostrado abaixo.
2014-12-09 14:24:27,526 INFO [main] Configuration.deprecation:
hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.8-hadoop2, r6cfc8d064754251365e070a10a82eb169956d5fe, Fri
Nov 14 18:26:29 PST 2014
hbase(main):001:0>
Interface da Web HBase
Para acessar a interface web do HBase, digite a seguinte url no navegador.
http://localhost:60010
Esta interface lista seus servidores de região atualmente em execução, mestres de backup e tabelas HBase.
Servidores de região HBase e backup mestres
Tabelas HBase
Configurando o ambiente Java
Também podemos nos comunicar com o HBase usando bibliotecas Java, mas antes de acessar o HBase usando a API Java, você precisa definir o classpath para essas bibliotecas.
Configurando o Classpath
Antes de prosseguir com a programação, defina o classpath para bibliotecas HBase em .bashrcArquivo. Abrir.bashrc em qualquer um dos editores conforme mostrado abaixo.
$ gedit ~/.bashrc
Defina o classpath para bibliotecas HBase (pasta lib no HBase) nele conforme mostrado abaixo.
export CLASSPATH = $CLASSPATH://home/hadoop/hbase/lib/*
Isso evita a exceção “classe não encontrada” ao acessar o HBase usando a API Java.