Pré-requisitos: Instalação do Hadoop
Como o HBase é construído sobre o HDFS do Hadoop, é necessário ter suporte do Hadooop instalado.
Baixar e Configurar o Hadoop
Faça o download do pacote de suporte do Hadoop no link: https://pan.baidu.com/s/1E8Ct25PqiyAmIhQbP7fUWA (senha: ztw7).
Após o download, extraia o arquivo e configure a variável de ambiente:
- Nome da variável:
HADOOP_HOME - Valor da variável: caminho completo da pasta extraída (exemplo:
D:\hadoop\hadoop-common-2.2.0-bin-master)
Adicione %HADOOP_HOME%\bin à variável Path (separando com ponto e vírgula).
Instalação do HBase
Baixe o HBase, preferencialmente a versão 1.2.0, que é estável e bem documentdaa. Link: https://pan.baidu.com/s/19beAaW-Xl-WaXghaBevZrw (senha: kjsr) ou acesse o arquivo oficial da Apache.
Extraia o arquivo baixado.
Configuração do HBase
No diretório conf dentro da pasta do HBase, edite o arquivo hbase-env.cmd e adicione:
set HBASE_MANAGES_ZK=false
set JAVA_HOME=D:\java\jdk1.8.0_77
set HBASE_CLASSPATH=D:\hbase\hbase-1.2.0\conf
Ajuste JAVA_HOME para o diretório do seu JDK e HBASE_CLASSPATH para o caminho da pasta conf do HBase.
Em seguida, edite o arquivo hbase-site.xml no mesmo diretório conf. Dentro das tags <configuration>, adicione:
<property>
<name>hbase.rootdir</name>
<value>file:///D:/hbase/hbase-1.2.0/hbase-data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>D:/hbase/hbase-1.2.0/zookeeper-data</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
Substitua os caminhos pelos diretórios que deseja usar no seu sistema.
Solucionando o Erro java.lang.NoClassDefFoundError: org/apache/htrace/core/HTraceConfiguration
Ao iniciar o HBase 1.2.0, é comum encontrar o erro java.lang.NoClassDefFoundError: org/apache/htrace/core/HTraceConfiguration. Isso ocorre porque a versão 1.2.0 depende da biblioteca HTrace, que não está incluída no pacote. Para resolver:
- Baixe o JAR do HTrace Core (versão compatível, geralmente
htrace-core-3.1.0-incubating.jar). - Copie o arquivo para o diretório
libdo HBase (exemplo:D:\hbase\hbase-1.2.0\lib). - Reinicie o HBase.
Se preferir, você pode adicionar o JAR manualmente ao classpath do HBase, mas a opção mais simples é colocá-lo na pasta lib.
Testando a Instalação
Abra o prompt de comando, navegue até o diretório bin do HBase e execute:
start-hbase
Uma nova janela do cmd abrirá com logs. Aguarde até que o serviço esteja pronto (você verá mensagens indicando que o HBase foi iniciado).
No terminal original, execute:
hbase shell
Se o shell aparecer, a instalação foi bem-sucedida.
Exemplo de Criação de Tabela
create 'test_table', 'cf1'
Para listar as tabelas:
list
Comandos Básicos do HBase
Verificar Existência de Tabela
exists 'test_table'
Criar Tabela com Múltiplas Famílias de Colunas
create 't1', 'f1', 'f2', 'f3'
Visualizar Estrutura da Tabela
describe 't1'
Limpar e Excluir Tabela
truncate 'minha_tabela'
# Para deletar:
disable 'minha_tabela'
drop 'minha_tabela'
Inserir Dados
create 'aluno', 'info', 'endereco'
put 'aluno', '1', 'info:idade', '20'
put 'aluno', '1', 'info:nome', 'joao'
put 'aluno', '1', 'endereco:cidade', 'sao_paulo'
put 'aluno', '2', 'info:idade', '22'
put 'aluno', '2', 'info:nome', 'maria'
put 'aluno', '2', 'endereco:cidade', 'rio'
Scan (Leitura de Toda a Tabela)
scan 'aluno'
Modificar Dados
Use put novamente para sobrescrever valores:
put 'aluno', '1', 'info:idade', '18'
Deletar Dados
Deletar uma célula específica:
delete 'aluno', '1', 'info:nome'
Deletar uma linha inteira:
deleteall 'aluno', '1'
Consultas Específicas
Obter uma linha:
get 'aluno', '2'
Obter uma família de colunas:
get 'aluno', '2', {COLUMN => 'info'}
Obter uma coluna específica:
get 'aluno', '2', {COLUMN => 'info:idade'}
Scan com Limites e Filtros
scan 'aluno', {COLUMNS => ['info:idade', 'endereco:cidade'], LIMIT => 10, STARTROW => '2'}
Alteração de Estrutura da Tabela
Primeiro desabilite a tabela, depois altere e reabilite:
disable 'aluno'
alter 'aluno', {NAME => 'info', TTL => '15552000'}
enable 'aluno'
Para adicionar uma nova família de colunas:
disable 'aluno'
alter 'aluno', 'novos_dados'
enable 'aluno'
Execução de Scripts
Você pode criar um arquivo de texto com comandos HBase (por exemplo, script.txt no diretório bin) e executá-lo com:
hbase shell script.txt
Notas Importantes
- Para versões mais recentes do HBase (2.x), muitas bibliotecas e dependências mudaram, o que pode causar erros como falta de JARs. A versão 1.2.0 é recomendada para aprendizado.
- Sempre mantenha o servidor HBase rodando enquanto usa o shell.
- Se encontrar problemas de classe não encontrada, verifique se todos os JARs necessários estão no diretório
libdo HBase.