Comandos Shell HBase com exemplos

โšก Resumo Inteligente

Os comandos do shell do HBase permitem gerenciar tabelas e dados diretamente de um prompt interativo, agrupados em comandos gerais, comandos de gerenciamento de tabelas, como create e drop, comandos de manipulaรงรฃo de dados, como put e get, e comandos de replicaรงรฃo de cluster.

  • ๐Ÿ–ฅ๏ธ Comandos gerais: Os comandos `status`, `version`, `table_help` e `whoami` exibem o estado do cluster e informaรงรตes do usuรกrio.
  • ๐Ÿ—‚๏ธ Gestรฃo de mesas: Criar, listar, descrever, desativar, ativar, excluir e alterar; construir e remodelar tabelas.
  • โœ๏ธ Manipulaรงรฃo de dados: As funรงรตes put, get, delete, deleteall, truncate, count e scan leem e escrevem valores de cรฉlulas.
  • ๐Ÿ” Cluster replicaรงรฃo: Os comandos add_peer, remove_peer, start_replication e stop_replication gerenciam a replicaรงรฃo de dados.
  • โณ Atributo TTL: O tempo de vida (Time To Live) expira automaticamente as linhas da famรญlia de colunas apรณs um nรบmero definido de segundos.
  • ๐Ÿค– Assistรชncia de IA: Assistentes de IA geram e explicam comandos do shell do HBase a partir de instruรงรตes em linguagem natural.

Comandos do shell do HBase com exemplos para replicaรงรฃo de tabelas, dados e clusters.

Como interagir com o HBase usando comandos do shell e Java API

Apรณs a instalaรงรฃo bem-sucedida do HBase sobre o Hadoop, obtemos um shell interativo para executar vรกrios comandos e realizar diversas operaรงรตes. Usando esses comandos, podemos executar mรบltiplas operaรงรตes em tabelas de dados, o que proporciona maior eficiรชncia no armazenamento de dados e interaรงรฃo flexรญvel para o cliente.

Podemos interagir com o HBase de duas maneiras:

  • Modo de shell interativo do HBase e
  • Atravรฉs da Java API.

No HBase, o modo de shell interativo รฉ usado para interagir com o HBase para operaรงรตes em tabelas, gerenciamento de tabelas e modelagem de dados. Usando o Java Com o modelo de API, podemos realizar todos os tipos de operaรงรตes de tabela e dados no HBase. Podemos interagir com o HBase usando ambos os mรฉtodos. A รบnica diferenรงa entre os dois รฉ que o Java A API usa Java O modo shell usa cรณdigo para se conectar com o HBase, enquanto o modo shell usa comandos do shell para se conectar com o HBase.

Breve recapitulaรงรฃo do HBase antes de prosseguirmos:

  • HBase usa Hadoop O HBase รฉ um sistema de armazenamento que utiliza arquivos para guardar grandes quantidades de dados. Ele consiste em servidores mestre e servidores de regiรฃo.
  • Os dados que serรฃo armazenados no HBase estarรฃo na forma de regiรตes. Alรฉm disso, essas regiรตes serรฃo divididas e armazenadas em vรกrios servidores de regiรฃo.
  • Esses comandos do shell permitem ao programador definir esquemas de tabelas e operaรงรตes de dados usando interaรงรฃo completa no modo shell.
  • Qualquer comando que utilizarmos terรก seu impacto no modelo de dados do HBase.
  • Utilizamos comandos do shell do HBase em interpretadores de script do sistema operacional, como o shell Bash.
  • O shell Bash รฉ o interpretador de comandos padrรฃo para a maioria dos sistemas. Linux e distribuiรงรตes de sistemas operacionais Unix.
  • As versรตes avanรงadas do HBase fornecem comandos de shell com referรชncias orientadas a objetos no estilo JRuby para tabelas.
  • Variรกveis โ€‹โ€‹de referรชncia de tabela podem ser usadas para realizar operaรงรตes de dados no modo shell do HBase.

Por exemplo:

  • Neste tutorial, criamos uma tabela na qual 'education' representa o nome da tabela e corresponde ao nome da coluna โ€œguru99โ€.
  • Em alguns comandos, โ€œguru99โ€ representa o prรณprio nome de uma tabela.

Comandos gerais

No HBase, os comandos gerais sรฃo categorizados nos seguintes comandos:

  • Status
  • Versรฃo
  • Table_help (varredura, eliminaรงรฃo, obtenรงรฃo, colocaรงรฃo, desabilitaรงรฃo, etc.)
  • Quem sou eu

Para acessar o shell de comandos do HBase, primeiro precisamos executar o cรณdigo mencionado abaixo.

hbase Shell

Apรณs acessar o shell do HBase, podemos executar todos os comandos mencionados abaixo. Com a ajuda desses comandos, podemos realizar todos os tipos de operaรงรตes em tabelas no modo shell do HBase. O prompt do shell interativo aparece conforme mostrado abaixo:

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

Vejamos todos esses comandos e seu uso, um por um, com um exemplo.

Status

Syntax:status

Este comando fornecerรก detalhes sobre o status do sistema, como o nรบmero de servidores presentes no cluster, a quantidade de servidores ativos e o valor mรฉdio de carga. Vocรช tambรฉm pode passar parรขmetros especรญficos, dependendo do nรญvel de detalhamento das informaรงรตes que deseja obter sobre o sistema. Os parรขmetros podem ser 'summary', 'simple' ou 'detailed'; o parรขmetro padrรฃo รฉ โ€œsummaryโ€.

Abaixo, mostramos como vocรช pode passar diferentes parรขmetros para o comando de status. Observando a captura de tela abaixo, teremos uma ideia melhor.

hbase(main):001:0>status
hbase(main):002:0>status 'simple'
hbase(main):003:0>status 'summary'
hbase(main):004:0> status 'detailed'

O resultado do status รฉ mostrado abaixo:

Saรญda do comando de status do shell do HBase mostrando servidores ativos, servidores inativos e carga mรฉdia.

Ao executarmos esse comando de status, ele fornece informaรงรตes sobre o nรบmero de servidores presentes, servidores inativos e a carga mรฉdia do servidor. Aqui, a captura de tela mostra informaรงรตes como 1 servidor ativo, 1 servidor inativo e uma carga mรฉdia de 7.0000.

Versรฃo

Syntax: version

A versรฃo exibida รฉ mostrada abaixo:

O comando `hBase shell version` mostra a versรฃo do HBase instalada.

  • Este comando exibirรก a versรฃo do HBase atualmente em uso no modo de comando.
  • Se vocรช executar o comando de versรฃo, ele exibirรก a saรญda mostrada acima.

Tabela de ajuda

Syntax:table_help

A saรญda do comando `table_help` รฉ mostrada abaixo:

Lista de saรญda do comando `table_help` do shell HBase. Uso dos comandos `create` e `get_table`.

Este comando orienta:

  • O que sรฃo comandos referenciados por tabela e como usรก-los.
  • Ele fornecerรก diferentes usos de comandos do shell do HBase e suas respectivas sintaxes.
  • Na captura de tela acima, รฉ possรญvel ver a sintaxe dos comandos โ€œcreateโ€ e โ€œget_tableโ€ e seus respectivos usos. Podemos manipular a tabela por meio desses comandos apรณs sua criaรงรฃo no HBase.
  • Isso fornecerรก comandos de manipulaรงรฃo de tabelas, como put, get e todas as outras informaรงรตes de comando.

whoami

Syntax: Whoami

A saรญda do comando `whoami` รฉ mostrada abaixo:

O comando `whoami` do shell do HBase retorna o usuรกrio e os grupos atuais do HDUser.

O comando โ€œwhoamiโ€ รฉ usado para retornar as informaรงรตes do usuรกrio atual do HBase no cluster HBase. Ele fornecerรก informaรงรตes como:

  • Grupos presentes no HBase.
  • As informaรงรตes do usuรกrio; por exemplo, neste caso, โ€œhduserโ€ representa o nome de usuรกrio, conforme mostrado na captura de tela.

TTL (Tempo de Vida) โ€“ Atributo

No HBase, as famรญlias de colunas podem ser definidas para valores de tempo em segundos usando TTL. O HBase excluirรก automaticamente as linhas assim que o tempo de expiraรงรฃo for atingido. Esse atributo se aplica a todas as versรตes de uma linha, inclusive ร  versรฃo atual.

O tempo TTL codificado no HBase para a linha รฉ especificado em UTC. Este atributo รฉ usado com comandos de gerenciamento de tabelas. As principais diferenรงas entre o tratamento de TTL e os TTLs de famรญlias de colunas sรฃo apresentadas abaixo:

  • Os TTLs das cรฉlulas sรฃo expressos em unidades de milissegundos em vez de segundos.
  • O TTL de uma cรฉlula nรฃo pode estender a vida รบtil efetiva de uma cรฉlula alรฉm da configuraรงรฃo de TTL definida no nรญvel da Famรญlia de Colunas.

Comandos de gerenciamento de tabelas

Esses comandos permitem que os programadores criem tabelas e esquemas de tabelas com famรญlias de linhas e colunas. A seguir, estรฃo os comandos de gerenciamento de tabelas:

  • Criar
  • Lista
  • Descrever
  • Desabilitar
  • Desativar_tudo
  • Permitir
  • Habilitar todos
  • Cair
  • Soltar_tudo
  • Mostrar_filtros
  • Idade
  • Alterar_status

Vamos analisar os diversos usos de comandos no HBase com um exemplo.

Criar

Syntax: create <tablename>, <columnfamilyname>

Exemplo:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table โ€“ education

O resultado do comando de criaรงรฃo รฉ mostrado abaixo:

O comando `hBase shell create` cria a tabela `education` com a famรญlia de colunas `guru99`.

O exemplo acima explica como criar uma tabela no HBase com o nome especificado, de acordo com as especificaรงรตes de cada famรญlia de colunas. Alรฉm disso, tambรฉm podemos passar alguns atributos de escopo de tabela para ela. Para verificar se a tabela 'education' foi criada ou nรฃo, usamos o comando "list" abaixo. Veja tambรฉm criando tabelas HBase com Java e concha.

Lista

Syntax:list

A lista de resultados รฉ mostrada abaixo:

O comando `HBase shell list` mostra oito tabelas existentes no HBase.

  • O comando โ€œlistโ€ exibirรก todas as tabelas presentes ou criadas no HBase.
  • A saรญda mostrada na captura de tela acima exibe atualmente as tabelas existentes no HBase.
  • Aqui, nesta captura de tela, รฉ possรญvel ver que existem um total de 8 tabelas presentes no HBase.
  • Podemos filtrar os valores de saรญda das tabelas passando parรขmetros opcionais de expressรฃo regular.

Descrever

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

A saรญda do comando `describe` รฉ mostrada abaixo:

Saรญda do comando `describe` do shell do HBase detalhando as famรญlias de colunas da tabela `education`.

Este comando descreve a tabela nomeada.

  • Isso fornecerรก mais informaรงรตes sobre as famรญlias de colunas presentes na tabela mencionada.
  • No nosso caso, apresenta a descriรงรฃo da tabela โ€œeducaรงรฃoโ€.
  • Isso fornecerรก informaรงรตes sobre o nome da tabela com famรญlias de colunas, filtros associados, versรตes e alguns outros detalhes.

desabiltar

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

A saรญda de desativaรงรฃo รฉ mostrada abaixo:

O comando `HBase shell disable` coloca a tabela `education` offline.

  • Este comando iniciarรก a desativaรงรฃo da tabela especificada.
  • Se uma tabela precisar ser excluรญda ou removida, ela precisa ser desativada primeiro.

Aqui, na captura de tela acima, estamos desativando a tabela de educaรงรฃo.

desativar_tudo

 Syntax: disable_all<"matching regex"
  • Este comando desabilitarรก todas as tabelas que correspondem ao regex fornecido.
  • A implementaรงรฃo รฉ a mesma do comando drop (exceto pela adiรงรฃo de uma expressรฃo regular para correspondรชncia).
  • Apรณs a tabela ser desativada, o usuรกrio poderรก excluรญ-la do HBase.
  • Antes de excluir ou soltarping Uma tabela deve ser desativada primeiro.

Permitir

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

A saรญda do comando `enable` รฉ mostrada abaixo:

O comando `hbase shell enable` reativa a tabela de educaรงรฃo desativada.

  • Este comando irรก ativar a tabela especificada.
  • Qualquer tabela que esteja desativada, para restaurรก-la ao seu estado anterior, usamos este comando.
  • Se uma tabela estiver desabilitada inicialmente e nรฃo for excluรญda ou descartada, e se quisermos reutilizar a tabela desabilitada, entรฃo precisamos habilitรก-la usando este comando.
  • Aqui, na captura de tela acima, estamos habilitando a tabela โ€œeducaรงรฃoโ€.

mostrar_filtros

Syntax: show_filters

A saรญda do comando show_filters รฉ mostrada abaixo:

O comando `show_filters` do shell do HBase lista os filtros disponรญveis no HBase.

Este comando exibe todos os filtros presentes no HBase, como ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter, etc.

cair

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

A saรญda do drop รฉ mostrada abaixo:

O comando drop do shell do HBase exclui a tabela de educaรงรฃo desativada.

Devemos observar os seguintes pontos para o comando drop:

  • Para excluir uma tabela presente no HBase, primeiro precisamos desativรก-la.
  • Para excluir uma tabela presente no HBase, primeiro precisamos desativรก-la.
  • Portanto, para excluir ou remover uma tabela, primeiro a tabela deve ser desativada usando o comando disable.
  • Aqui, na captura de tela acima, estamos soltandoping a tabela โ€œeducaรงรฃoโ€.
  • Antes de executar este comando, รฉ necessรกrio desativar a tabela โ€œeducationโ€.

drop_all

Syntax: drop_all<"regex">
  • Este comando irรก excluir todas as tabelas que correspondem ร  expressรฃo regular fornecida.
  • As tabelas precisam ser desativadas primeiro, antes de executar este comando, usando disable_all.
  • Tabelas com expressรตes regulares correspondentes serรฃo removidas do HBase.

estรก ativado

Syntax: is_enabled 'education'

Este comando verifica se a tabela especificada estรก habilitada ou nรฃo. Geralmente, hรก alguma confusรฃo entre as aรงรตes dos comandos โ€œenableโ€ e โ€œis_enabledโ€, que esclarecemos aqui:

  • Suponha que uma tabela esteja desabilitada; para usar essa tabela, precisamos habilitรก-la usando o comando enable.
  • O comando is_enabled verifica se a tabela estรก habilitada ou nรฃo.

alterar

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

Este comando altera o esquema da famรญlia de colunas. Para entender exatamente o que ele faz, explicamos aqui com um exemplo.

Exemplos: Nestes exemplos, vamos executar operaรงรตes de comando ALTER em tabelas e em suas colunas. Realizaremos operaรงรตes como:

  • Alteraรงรฃo de nomes de famรญlia em colunas รบnicas e mรบltiplas.
  • Excluindo nomes de famรญlias de colunas de uma tabela.
  • Diversas outras operaรงรตes que utilizam atributos de escopo com uma tabela.

Para alterar ou adicionar a famรญlia de colunas 'guru99_1' na tabela 'education', mantendo um mรกximo de 5 versรตes de cรฉlulas. Aqui, "education" รฉ o nome da tabela criada anteriormente com o nome de coluna "guru99". Com a ajuda de um comando ALTER, estamos tentando alterar o esquema da famรญlia de colunas de guru99 para guru99_1, conforme mostrado abaixo:

O comando ALTER do shell do HBase altera a famรญlia de colunas da tabela education para guru99_1.

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5

Vocรช tambรฉm pode usar o comando ALTER em vรกrias famรญlias de colunas. Por exemplo, vamos definir duas novas colunas para nossa tabela existente "education", como mostrado abaixo:

O comando ALTER do shell do HBase adiciona duas novas famรญlias de colunas: guru99_2 e guru99_3.

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Podemos alterar o esquema de mais de uma coluna por vez usando este comando.
  • guru99_2 e guru99_3, conforme mostrado na captura de tela acima, sรฃo os dois novos nomes de coluna que definimos para a tabela education.
  • Podemos ver como usar esse comando na captura de tela anterior.

Nesta etapa, veremos como excluir uma famรญlia de colunas da tabela. Para excluir a famรญlia de colunas 'f1' na tabela 'education', use um dos comandos abaixo. O resultado รฉ mostrado na captura de tela a seguir:

Comando ALTER do shell HBase excluindo uma famรญlia de colunas da tabela education

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

Neste comando, estamos tentando excluir o espaรงo de colunas chamado guru99_1 que criamos anteriormente na primeira etapa. Como mostrado nas capturas de tela abaixo, sรฃo duas etapas: como alterar um atributo de escopo de tabela e como remover o atributo de escopo de tabela.

O comando ALTER do shell do HBase define o atributo de escopo de tabela MAX_FILESIZE.

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Passo 1) Vocรช pode alterar atributos de escopo de tabela como MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Estes podem ser colocados no final; por exemplo, para alterar o tamanho mรกximo de uma regiรฃo para 128 MB ou qualquer outro valor de memรณria, usamos este comando.

Uso:

  • Podemos usar MAX_FILESIZE com a tabela como um atributo de escopo, como acima.
  • O valor representado em MAX_FILESIZE refere-se ร  memรณria em bytes.

NOTA: O escopo da tabela MAX_FILESIZE serรก determinado por alguns atributos presentes no HBase. MAX_FILESIZE tambรฉm estรก incluรญdo nos atributos de escopo da tabela.

Passo 2) Vocรช tambรฉm pode remover um atributo de escopo de tabela usando o mรฉtodo `table_att_unset`. Veja o comando abaixo:

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • A captura de tela acima mostra o nome da tabela alterado com os atributos de escopo.
  • O mรฉtodo `table_att_unset` รฉ usado para remover atributos presentes na tabela.
  • No segundo caso, estamos removendo o atributo MAX_FILESIZE.
  • Apรณs a execuรงรฃo do comando, ele simplesmente removerรก o atributo MAX_FILESIZE da tabela โ€œeducationโ€.

alter_status

 Syntax: alter_status 'education'

A saรญda do comando alter_status รฉ mostrada abaixo:

O comando `alter_status` do shell do HBase mostra que uma das regiรตes foi atualizada.

  • Por meio desse comando, vocรช pode obter o status do comando alter.
  • Indica o nรบmero de regiรตes da tabela que receberam o esquema atualizado. Vocรช informa o nome da tabela.
  • Aqui, na captura de tela acima, mostra 1/1 regiรตes atualizadas. Isso significa que uma regiรฃo foi atualizada. Depois disso, se a atualizaรงรฃo for bem-sucedida, a mensagem "concluรญdo" serรก exibida.

Comandos de manipulaรงรฃo de dados

Esses comandos operam na tabela para manipulaรงรฃo de dados, como inserir dados em uma tabela, recuperar dados de uma tabela e excluir esquemas, etc. Os comandos que se enquadram nessa categoria sรฃo:

  • Contar
  • colocar
  • BAIXE
  • Apagar
  • apagar tudo
  • Truncar
  • Escanear

Vamos analisar o uso desses comandos com um exemplo. Veja tambรฉm leitura e gravaรงรฃo de dados HBase.

Contar

Syntax: count <'tablename'>, CACHE =>1000
  • O comando irรก recuperar a quantidade de linhas em uma tabela. O valor retornado por este comando รฉ o nรบmero de linhas.
  • Por padrรฃo, a contagem atual รฉ exibida a cada 1000 linhas.
  • O intervalo de contagem pode ser especificado opcionalmente.
  • O tamanho padrรฃo do cache รฉ de 10 linhas.
  • O comando de contagem funcionarรก rapidamente quando estiver configurado com o cache correto.

Exemplo:

hbase> count 'guru99', CACHE=>1000

O resultado da contagem รฉ mostrado abaixo:

O comando `count` do shell do HBase retorna a contagem de linhas da tabela `guru99`.

Este exemplo de contagem busca 1000 linhas por vez da tabela โ€œguru99โ€. Podemos diminuir o valor do cache se a tabela tiver mais linhas. Mas, por padrรฃo, ele buscarรก uma linha por vez.

hbase>count 'guru99', INTERVAL => 100000
hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Suponha que a tabela โ€œguru99โ€ tenha alguma referรชncia de tabela, como por exemplo, g. Podemos executar o comando count tambรฉm na referรชncia da tabela, como abaixo:

hbase>g.count INTERVAL=>100000
hbase>g.count INTERVAL=>10, CACHE=>1000

colocar

Syntax:  put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Este comando รฉ usado para os seguintes fins:

  • Ele colocarรก um 'valor' de cรฉlula em uma tabela, linha ou coluna definida ou especificada.
  • Opcionalmente, poderรก incluir um registro de data e hora.

Exemplo: Aqui, estamos inserindo valores na tabela โ€œguru99โ€ na linha r1 e coluna c1.

hbase> put 'guru99', 'r1', 'c1', 'value', 10

Inserimos trรชs valores, 10, 15 e 30, na tabela โ€œguru99โ€, conforme mostrado na captura de tela abaixo.

O comando `put` do shell do HBase inseriu os valores 10, 15 e 30 na tabela guru99.

Suponha que a tabela โ€œguru99โ€ tenha alguma referรชncia de tabela, como por exemplo, g. Tambรฉm podemos executar o comando na referรชncia da tabela, como:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

O resultado serรก como mostrado na captura de tela acima, apรณs inserir valores em โ€œguru99โ€. Para verificar se o valor de entrada foi inserido corretamente na tabela, usamos o comando โ€œscanโ€. Na captura de tela abaixo, podemos ver que os valores foram inseridos corretamente.

Saรญda da verificaรงรฃo do shell do HBase confirmando os valores inseridos na tabela guru99.

Code Trecho: Para praticar

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
put 'guru99', 'r1', 'Edu:c1', 'value', 10
put 'guru99', 'r1', 'Edu:c1', 'value', 15
put 'guru99', 'r1', 'Edu:c1', 'value', 30

A partir do trecho de cรณdigo, estamos fazendo o seguinte:

  • Aqui, estamos criando uma tabela chamada 'guru99' com o nome da coluna sendo "Edu".
  • Ao usar o comando โ€œputโ€, estamos inserindo valores na linha r1, coluna โ€œEduโ€, na tabela โ€œguru99โ€.

BAIXE

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Aqui, Inclua TIMERANGE, TIMESTAMP, VERSIONS e FILTERS. Ao usar este comando, vocรช obterรก o conteรบdo de uma linha ou cรฉlula presente na tabela. Alรฉm disso, vocรช tambรฉm pode adicionar parรขmetros adicionais, como TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, etc., para obter o conteรบdo de uma linha ou cรฉlula especรญfica.

O comando `get` abaixo retorna os valores da linha r1 e da coluna c1:

O comando `get` do shell HBase retorna a linha r1 e a coluna c1 da tabela guru99.

Exemplos:-

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Para a tabela โ€œguru99โ€, os valores da linha r1 e da coluna c1 serรฃo exibidos usando este comando, conforme mostrado na captura de tela acima.

hbase> get 'guru99', 'r1'

Para a tabela โ€œguru99โ€, os valores da linha r1 serรฃo exibidos usando este comando.

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Para a tabela โ€œguru99โ€, os valores da linha r1 no intervalo de tempo ts1 a ts2 serรฃo exibidos usando este comando.

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Para a tabela โ€œguru99โ€, os valores da linha r1 e das famรญlias de colunas c1, c2 e c3 serรฃo exibidos usando este comando.

Apagar

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Este comando irรก apagar o valor da cรฉlula em uma linha ou coluna definida da tabela.
  • A funรงรฃo Delete deve e precisa corresponder exatamente ร s coordenadas da cรฉlula excluรญda.
  • Durante a digitalizaรงรฃo, a exclusรฃo de uma cรฉlula suprime as versรตes mais antigas dos valores.

Exemplo: O comando delete abaixo remove as cรฉlulas r1 e c1 da tabela guru99:

O comando delete do shell do HBase remove a cรฉlula r1 c1 da tabela guru99.

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • A execuรงรฃo acima excluirรก a linha r1 da famรญlia de colunas c1 na tabela โ€œguru99โ€.
  • Suponha que a tabela โ€œguru99โ€ tenha alguma referรชncia de tabela, como por exemplo g.
  • Tambรฉm podemos executar o comando na referรชncia da tabela, como hbase> g.delete 'guru99', 'r1', 'c1'.

excluir tudo

Syntax: deleteall <'tablename'>, <'rowname'>
  • Este comando apagarรก todas as cรฉlulas de uma determinada linha.
  • Opcionalmente, podemos definir nomes de colunas e um registro de data e hora na sintaxe.

Exemplo: O comando deleteall abaixo remove todas as cรฉlulas da linha r1:

O comando deleteall do shell HBase remove todas as cรฉlulas da linha r1 da tabela guru99.

hbase>deleteall 'guru99', 'r1', 'c1'

Isso excluirรก todas as linhas e colunas presentes na tabela. Opcionalmente, podemos mencionar os nomes das colunas.

Truncar

Syntax:  truncate <tablename>

O comando truncate abaixo esvazia a tabela enquanto keeping seu esquema:

Desativaรงรฃo do comando truncate do shell HBase, removerpinge recriando a tabela guru99

Apรณs o truncamento de uma tabela HBase, o esquema estarรก presente, mas nรฃo os registros. Este comando executa 3 funรงรตes; elas estรฃo listadas abaixo:

  • Desativa a tabela se ela jรก existir.
  • Remove a tabela se ela jรก existir.
  • Recria a tabela mencionada.

Escanear

Syntax: scan <'tablename'>, {Optional parameters}

Este comando examina a tabela inteira e exibe o seu conteรบdo.

  • Podemos passar diversas especificaรงรตes opcionais a este comando scan para obter mais informaรงรตes sobre as tabelas presentes no sistema.
  • As especificaรงรตes do scanner podem incluir um ou mais dos seguintes atributos.
  • Sรฃo eles: TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW e STOPROW.
scan 'guru99'

O resultado da digitalizaรงรฃo รฉ mostrado abaixo:

O comando de varredura do shell do HBase exibe as linhas r1, r2 e r3 da tabela guru99.

Na captura de tela acima:

  • A imagem mostra a tabela โ€œguru99โ€ com os nomes e valores das colunas.
  • Consiste em trรชs valores de linha, r1, r2 e r3, para o valor de coluna รบnico c1.
  • Exibe os valores associados ร s linhas.

Exemplos: - Os diferentes usos do comando scan:

Command Uso
digitalizar '.META.', {COLUMNS => 'info:regioninfo'} Exibe todas as informaรงรตes de metadados relacionadas ร s colunas presentes nas tabelas do HBase.
digitalizar 'guru99', {COLUMNS => ['c1', 'c2'], LIMITE => 10, STARTROW => 'xyz'} Exibe o conteรบdo da tabela guru99 com suas famรญlias de colunas c1 e c2, limitando os valores a 10.
digitalizar 'guru99', {COLUNAS => 'c1', TIMERANGE => [1303668804, 1303668904]} Exibe o conteรบdo de guru99, com a coluna nomeada c1, contendo os valores presentes no intervalo de tempo especificado pelo atributo.
digitalizar 'guru99', {RAW => verdadeiro, VERSร•ES =>10} Neste comando, RAW=> true fornece um recurso avanรงado, como exibir todos os valores de cรฉlula presentes na tabela guru99.

Code Exemplo: Primeiro, crie uma tabela e insira valores nela. A entrada รฉ mostrada na captura de tela abaixo:

Entrada do shell HBase criando a tabela guru99 e inserindo valores versionados antes de uma varredura bruta.

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}
put 'guru99', 'r1', 'e:c1', 'value', 10
put 'guru99', 'r1', 'e:c1', 'value', 12
put 'guru99', 'r1', 'e:c1', 'value', 14
delete 'guru99', 'r1', 'e:c1', 11

Se executarmos o comando de varredura:

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

Serรก exibida a saรญda mostrada abaixo:

Saรญda de varredura bruta do shell do HBase mostrando vรกrias versรตes de cรฉlulas, incluindo um valor excluรญdo.

A saรญda mostrada na captura de tela acima fornece as seguintes informaรงรตes:

  • Analisando a tabela guru99 com os atributos RAW=>true, VERSIONS=>1000.
  • Exibiรงรฃo de linhas com famรญlias de colunas e valores.
  • Na terceira linha, os valores exibidos mostram o valor excluรญdo presente na coluna.
  • O resultado exibido รฉ aleatรณrio; nรฃo pode estar na mesma ordem dos valores que inserimos na tabela.

Cluster Comandos de replicaรงรฃo

  • Esses comandos funcionam no modo de configuraรงรฃo de cluster do HBase.
  • Para adicionar e remover nรณs de um cluster, bem como para iniciar e parar a replicaรงรฃo, sรฃo utilizados estes comandos em geral.
Command Funcionalidade
add_peer Adiciona nรณs a um cluster para replicaรงรฃo.
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod
remover_peer Interrompe o fluxo de replicaรงรฃo definido e exclui todas as informaรงรตes de metadados sobre o par.
hbase> remove_peer '1'
start_replication Reinicia todas as funcionalidades de replicaรงรฃo.
hbase> start_replication
parar_replicaรงรฃo Interrompe todas as funcionalidades de replicaรงรฃo.
hbase>stop_replication

Perguntas Frequentes

Digite `exit` ou `quit` e pressione Enter para sair do shell interativo do HBase e retornar ao prompt do sistema operacional. Vocรช abre o shell com o comando `hbase shell`. Nem `exit` nem `quit` interrompem o serviรงo do HBase; eles apenas encerram a sessรฃo do shell.

Sim. Vocรช pode usar o comando `pipe` para inserir comandos de forma nรฃo interativa, por exemplo, `echo "list" | hbase shell`, ou executar um arquivo salvo com `hbase shell script.txt`. Como o shell รฉ baseado em JRuby, vocรช tambรฉm pode incorporar lรณgica Ruby e loops dentro de arquivos de script `.rb`.

O shell รฉ um prompt interativo do JRuby para comandos manuais rรกpidos e administraรงรฃo. Java A API, que utiliza Connection, Admin e Table, destina-se a aplicaรงรตes que criam tabelas e leem ou gravam dados programaticamente. Ambas acessam o mesmo cluster HBase e os mesmos dados.

O erro โ€œA tabela jรก existeโ€ aparece quando o comando `create` repete um nome jรก existente, e o erro โ€œTabela nรฃo desativadaโ€ aparece quando vocรช tenta excluir ou alterar a tabela sem desativรก-la primeiro. Execute `disable 'table'` antes de excluir ou alterar a tabela, e use `exists 'table'` para verificar um nome antes de criรก-la.

Uma famรญlia de colunas do HBase mantรฉm um nรบmero limitado de versรตes com carimbo de data/hora por cรฉlula, historicamente trรชs e uma em versรตes mais recentes. Defina a contagem com VERSIONS no momento da criaรงรฃo ou alteraรงรฃo e solicite versรตes mais antigas usando {VERSIONS => n} em um comando get ou scan.

Uma variรกvel de referรชncia de tabela รฉ um objeto shell retornado por `g = get_table 'guru99'`. Vocรช entรฃo chama mรฉtodos nela, como `g.put`, `g.get` ou `g.count`, em vez de repetir o nome da tabela. ร‰ um atalho conveniente no estilo JRuby no shell do HBase.

Assistentes de codificaรงรฃo com IA e grandes modelos de linguagem geram comandos do shell do HBase a partir de solicitaรงรตes em linguagem natural, explicam opรงรตes desconhecidas, como filtros de varredura ou TTL, e ajudam a depurar erros. O aprendizado de mรกquina tambรฉm analisa mรฉtricas do cluster para orientar a replicaรงรฃo e o ajuste de regiรตes, embora um engenheiro deva verificar cada comando.

Sim. Travas deslizantes portรกteis Copiloto do GitHub Sugere comandos do shell do HBase e scripts JRuby a partir de um breve comentรกrio, incluindo exemplos de criaรงรฃo, inserรงรฃo, verificaรงรฃo e alteraรงรฃo. RevVerifique se o resultado indica o nome correto da tabela, as famรญlias de colunas e a sintaxe, como VERSIONS, antes de executรก-lo em um cluster real.

Resuma esta postagem com: