Comandos do shell HBase com exemplos

Índice:

Anonim

Após a instalação bem-sucedida do HBase sobre o Hadoop, obtemos um shell interativo para executar vários comandos e várias operações. Usando esses comandos, podemos realizar várias operações em tabelas de dados que podem fornecer melhores eficiências de armazenamento de dados e interação flexível por parte do cliente.

Podemos interagir com o HBase de duas maneiras,

  • Modo shell interativo HBase e
  • Por meio da API Java

No HBase, o modo shell interativo é usado para interagir com o HBase para operações de tabela, gerenciamento de tabela e modelagem de dados. Usando o modelo Java API, podemos realizar todos os tipos de operações de tabela e dados no HBase. Podemos interagir com o HBase usando esses dois métodos.

A única diferença entre esses dois é que a API Java usa o código Java para se conectar com o HBase e o modo shell usa os comandos do shell para se conectar com o HBase.

Overcap rápido de HBase antes de prosseguirmos-

  • O HBase usa arquivos Hadoop como sistema de armazenamento para armazenar grandes quantidades de dados. Hbase consiste em servidores principais e servidores de regiões
  • 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 servidores de várias regiões
  • Este comando shell permite ao programador definir esquemas de tabela e operações de dados usando interação completa em modo shell
  • Qualquer que seja o comando que usarmos, ele refletirá no modelo de dados HBase
  • Usamos comandos do shell HBase em interpretadores de script do sistema operacional, como o shell Bash
  • Bash shell é o interpretador de comandos padrão para a maioria das distribuições operacionais Linux e Unix
  • As versões avançadas do HBase fornecem comandos de shell 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 HBase

Por exemplo ,

  • Neste tutorial, criamos uma tabela em que 'educação' representa o nome da tabela e corresponde ao nome da coluna "guru99".
  • Em alguns comandos "guru99", ele próprio representa um nome de tabela.

Neste tutorial, você aprenderá,

  • Comandos gerais
  • Comandos de gerenciamento de tabelas
  • Comandos de manipulação de dados
  • Comandos de replicação de cluster

Comandos gerais

No Hbase, os comandos gerais são categorizados nos seguintes comandos

  • Status
  • Versão
  • Table_help (escanear, descartar, obter, colocar, desabilitar, etc.)
  • Quem sou eu

Para entrar no comando do shell do HBase, primeiro de tudo, temos que executar o código conforme mencionado abaixo

hbase Shell

Assim que entrarmos no shell do HBase, podemos executar todos os comandos do shell mencionados abaixo. Com a ajuda desses comandos, podemos realizar todos os tipos de operações de tabela no modo shell HBase.

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 um número de servidores presentes no cluster, contagem de servidores ativos e valor médio de carregamento. Você também pode passar quaisquer parâmetros específicos, dependendo do status detalhado que deseja saber sobre o sistema. Os parâmetros podem ser 'resumo', 'simples' ou 'detalhado' , o parâmetro padrão fornecido é "resumo".

Abaixo, mostramos como você pode passar diferentes parâmetros para o comando de status.

Se observarmos a captura de tela abaixo, teremos uma ideia melhor.

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

Quando executamos este status de comando, ele dará informações sobre o número de servidores presentes, servidores mortos e carga média do servidor, aqui na captura de tela ele mostra as informações como - 1 servidor ativo, 1 servidor morto e carga média de 7,0000.

Versão

Syntax: version

  • Este comando exibirá a versão do HBase atualmente usada no modo de comando
  • Se você executar o comando version, ele dará a saída conforme mostrado acima

Ajuda de mesa

Syntax:table_help

Este comando orienta

  • O que e como usar comandos referenciados em tabelas
  • Ele fornecerá diferentes usos de comando do shell do HBase e suas sintaxes
  • Aqui, na captura de tela acima, mostra a sintaxe dos comandos " criar" e " get_table" com seu uso. Podemos manipular a tabela por meio desses comandos, uma vez que a tabela é criada no HBase.
  • Ele fornecerá comandos de manipulação de tabelas como put, get e todas as outras informações de comandos.

Quem sou eu

Sintaxe:

Syntax: Whoami

Este comando "whoami" é usado para retornar as informações do usuário HBase atual do cluster HBase.

Irá fornecer informações como

  • Grupos presentes no HBase
  • As informações do usuário, por exemplo, neste caso "hduser" representam o nome do usuário conforme mostrado na captura de tela

TTL (Time To Live) - 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. Este atributo se aplica a todas as versões de uma linha - até mesmo a versão atual também.

A hora TTL codificada no HBase para a linha é especificada em UTC. Este atributo é usado com comandos de gerenciamento de tabela.

As diferenças importantes entre o manuseio de TTL e os TTLs da família de colunas estão abaixo

  • Os TTLs das células são expressos em unidades de milissegundos em vez de segundos.
  • Os TTLs de uma célula não podem estender o tempo de vida efetivo de uma célula além de uma configuração de TTL de nível de família de coluna.

Comandos de gerenciamento de tabelas

Esses comandos permitirão que os programadores criem tabelas e esquemas de tabelas com linhas e famílias de colunas.

A seguir estão os comandos de gerenciamento de tabela

  • Crio
  • Lista
  • Descrever
  • Desabilitar
  • Disable_all
  • Habilitar
  • Habilitar todos
  • Solta
  • Drop_all
  • Mostrar_filtros
  • Alterar
  • Alter_status

Vejamos o uso de vários comandos no HBase com um exemplo.

Crio

Syntax: create 
, 

Exemplo:-

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

O exemplo acima explica como criar uma tabela no HBase com o nome especificado fornecido de acordo com o dicionário ou especificações de acordo com a família de colunas. Além disso, também podemos passar alguns atributos de escopo de tabela para ele.

Para verificar se a tabela 'educação' é criada ou não, temos que usar o comando "list" conforme mencionado abaixo.

Lista

Syntax:list

  • O comando "List" irá mostrar todas as tabelas que estão presentes ou criadas no HBase
  • A saída mostrada na captura de tela acima está mostrando as tabelas existentes no HBase
  • Aqui nesta captura de tela, mostra que há um total de 8 tabelas presentes no HBase
  • Podemos filtrar os valores de saída das tabelas, passando parâmetros de expressão regular opcionais

Descrever

Syntax:describe 

hbase(main):010:0>describe 'education'

Este comando descreve a tabela nomeada.

  • Ele dará mais informações sobre as famílias de colunas presentes na tabela mencionada
  • No nosso caso, dá a descrição sobre a mesa "educação".
  • Ele fornecerá informações sobre o nome da tabela com famílias de colunas, filtros associados, versões e mais alguns detalhes.

desabilitar

Syntax: disable 

hbase(main):011:0>disable 'education'
  • Este comando começará a desabilitar a tabela nomeada
  • Se a tabela precisar ser excluída ou descartada, ela deve primeiro desabilitar

Aqui, na captura de tela acima, estamos desativando a educação para a mesa

disable_all

 Syntax: disable_all<"matching regex"
  • Este comando desabilitará todas as tabelas que correspondem ao regex fornecido.
  • A implementação é a mesma do comando delete (exceto adicionar regex para correspondência)
  • Assim que a tabela for desabilitada, o usuário poderá excluí-la do HBase
  • Antes de excluir ou descartar a tabela, ela deve ser desativada primeiro

Habilitar

Syntax: enable 

hbase(main):012:0>enable 'education'
  • Este comando começará a habilitar a tabela nomeada
  • Qualquer que seja a tabela desabilitada, para retornar ao seu estado anterior, usamos este comando
  • Se uma tabela for desativada na primeira instância e não for excluída ou eliminada, e se quisermos reutilizar a tabela desativada, temos que ativá-la usando este comando.
  • Aqui na imagem acima, estamos habilitando a tabela "educação".

show_filters

Syntax: show_filters

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

solta

Syntax:drop 

hbase(main):017:0>drop 'education'

Temos que observar os pontos abaixo para o comando de soltar

  • Para deletar a tabela presente no HBase, primeiro temos que desabilitá-la
  • Para eliminar a tabela presente no HBase, primeiro temos que desativá-la
  • Portanto, quer a tabela seja eliminada ou excluída primeiro, a tabela deve ser desabilitada usando o comando desabilitar
  • Aqui, na imagem acima, estamos descartando a tabela "educação".
  • Antes da execução deste comando, é necessário que você desabilite a tabela "educação".

drop_all

Syntax: drop_all<"regex">
  • Este comando irá eliminar todas as tabelas que correspondem ao regex fornecido
  • As tabelas devem ser desativadas antes de executar este comando usando disable_all
  • Tabelas com expressões de correspondência de regex serão descartadas do HBase

está ativado

Syntax: is_enabled 'education'

Este comando verificará se a tabela nomeada está habilitada ou não. Normalmente, há uma pequena confusão entre as ações de comando "ativar" e "is_enabled", que esclarecemos aqui

  • Suponha que uma tabela esteja desabilitada, para usar essa tabela, temos que habilitá-la usando o comando enable
  • O comando is_enabled irá verificar se a tabela está habilitada ou não

alterar

Syntax: alter 
, NAME=>, 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 realizar operações alter command em tabelas e em suas colunas. Vamos realizar operações como

  • Alterar nomes de família de coluna única e múltipla
  • Excluindo nomes de família de colunas da tabela
  • Várias outras operações usando atributos de escopo com tabela
  1. Para alterar ou adicionar o grupo de colunas 'guru99_1' na tabela 'educação' do valor atual para manter um máximo de 5 VERSÕES de células ,
  • "educação" é o nome da tabela criada com o nome da coluna "guru99" anteriormente
  • Aqui, com a ajuda de um comando alter, estamos tentando mudar o esquema da família de colunas para guru99_1 de guru99

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. Você também pode operar o comando alter em várias famílias de colunas. Por exemplo, definiremos duas novas colunas para nossa tabela existente "educação".
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

  • Podemos alterar mais de um esquema de 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 educação
  • Podemos ver a maneira de usar este comando na captura de tela anterior
  1. Nesta etapa, veremos como excluir o grupo de colunas da tabela. Para deletar o grupo de colunas 'f1' na tabela 'educação'.

Use um dos comandos abaixo,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1' 
  • Neste comando, estamos tentando excluir o nome do espaço de coluna guru99_1 que criamos anteriormente na primeira etapa

  1. Conforme mostrado nas capturas de tela abaixo, ele mostra duas etapas - como alterar o atributo de escopo da tabela e como remover o atributo de escopo da tabela.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Etapa 1) Você pode alterar os atributos de escopo da tabela como MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc. Eles 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 que usamos comando.

Uso:

  • Podemos usar MAX_FILESIZE com a tabela como atributo de escopo conforme acima
  • O número representado em MAX_FILESIZE é em termos de memória em bytes

N OTA: MAX_FILESIZE O escopo da tabela de atributos será determinado por alguns atributos presentes no HBase. MAX_FILESIZE também vêm em atributos de escopo de tabela.

Etapa 2) Você também pode remover um atributo de escopo de tabela usando o método table_att_unset. Se você ver o comando

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • A captura de tela acima mostra o nome da tabela alterado com atributos de escopo
  • O método table_att_unset é usado para cancelar a definição de atributos presentes na tabela
  • Na segunda instância, estamos removendo o atributo MAX_FILESIZE
  • Após a execução do comando, ele irá simplesmente remover o atributo MAX_FILESIZE da tabela "educação".

alter_status

 Syntax: alter_status 'education'

  • Por meio deste comando, você pode obter o status do comando alter
  • Que indica o número de regiões da tabela que receberam o nome da tabela de passagem de esquema atualizado
  • Aqui, na captura de tela acima, ele mostra 1/1 das regiões atualizadas. Isso significa que ele atualizou uma região. Depois disso, se for bem-sucedido, ele exibirá o comentário concluído.

Comandos de manipulação de dados

Esses comandos funcionarão na tabela relacionada a manipulações de dados, como colocar dados em uma tabela, recuperar dados de uma tabela e excluir esquema, etc.

Os comandos sob estes são

  • Contar
  • Por
  • Obter
  • Excluir
  • Apagar tudo
  • Truncar
  • Varredura

Vamos dar uma olhada no uso desses comandos com um exemplo.

Contar

Syntax: count <'tablename'>, CACHE =>1000
  • O comando recuperará a contagem de várias linhas em uma tabela. O valor retornado por este é o número de linhas.
  • A contagem atual é mostrada a cada 1000 linhas por padrão.
  • O intervalo de contagem pode ser especificado opcionalmente.
  • O tamanho padrão do cache é 10 linhas.
  • O comando de contagem funcionará rapidamente quando for configurado com o cache correto.

Exemplo:

hbase> count 'guru99', CACHE=>1000

Esta contagem de exemplo busca 1000 linhas por vez na tabela "Guru99".

Podemos fazer cache para algum valor inferior se a tabela consistir em mais linhas.

Mas, por padrão, ele irá buscar uma linha de cada vez.

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

Se suponha que a tabela "Guru99" tenha alguma referência de tabela como, digamos, g.

Podemos executar o comando de contagem na referência de tabela também como abaixo

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

Por

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

Este comando é usado para seguir coisas

  • Ele colocará um 'valor' de célula em uma tabela, linha ou coluna definida ou especificada.
  • Ele irá, opcionalmente, coordenar o carimbo de hora.

Exemplo:

  • Aqui estamos colocando valores na tabela "guru99" na linha r1 e coluna c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Colocamos três valores, 10,15 e 30 na tabela "guru99", conforme mostrado na captura de tela abaixo

  • Suponha que a tabela "Guru99" tenha alguma referência de tabela, como digamos g. Também podemos executar o comando na referência de tabela também como

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • A saída será conforme mostrado na captura de tela acima, após colocar os valores em "guru99".

Para verificar se o valor de entrada está inserido corretamente na tabela, usamos o comando "scan". Na captura de tela abaixo, podemos ver que os valores estão inseridos corretamente

Snippet de código: para prática

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

A partir do snippet de código, estamos fazendo essas coisas

  • Aqui estamos criando uma tabela chamada 'guru99' com o nome da coluna como "Edu".
  • Ao usar o comando "put", colocamos valores no nome da linha r1 na coluna "Edu" na tabela "guru99".

Obter

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

Aqui, incluem TIMERANGE, TIMESTAMP, VERSIONS e FILTERS.

Usando 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 a ele, como TIMESTAMP, TIMERANGE, VERSIONS, FILTERS, etc. para obter uma linha ou conteúdo de célula específico.

Exemplos:-

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

Para a tabela "guru99 'linha r1 e valores de coluna c1 serão exibidos usando este comando como 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 1 no intervalo de tempo ts1 e ts2 serão exibidos usando este comando

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

Para a tabela "guru99", linha r1 e famílias de coluna, os valores c1, c2, c3 serão exibidos usando este comando

Excluir

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Este comando excluirá o valor da célula na tabela definida de linha ou coluna.
  • Excluir deve e deve corresponder exatamente às coordenadas das células excluídas.
  • Durante a varredura, delete cell suprime versões mais antigas de valores.

Exemplo:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''. 
  • A execução acima excluirá a linha r1 do grupo de colunas c1 na tabela "guru99".
  • Suponha que a tabela "guru99" tenha alguma referência de tabela como, por exemplo, g.
  • Podemos executar o comando na referência de tabela também como hbase > g.delete 'guru99', 'r1', 'c1' ".

deleteall

Syntax: deleteall <'tablename'>, <'rowname'>

  • Este comando excluirá todas as células em uma determinada linha.
  • Podemos definir opcionalmente nomes de coluna e registro de data e hora para a sintaxe.

Exemplo:-

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 

Após o truncamento de uma tabela hbase, o esquema apresentará, mas não os registros. Este comando executa 3 funções; aqueles estão listados abaixo

  • Desabilita a mesa se ela já apresenta
  • Abandona a mesa se ela já apresentar
  • Recria a tabela mencionada

Varredura

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

Este comando verifica a tabela inteira e exibe o conteúdo da tabela.

  • Podemos passar várias especificações opcionais para 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.
  • Estes são TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW e STOPROW.
scan 'guru99' 

A saída conforme mostrado abaixo na captura de tela

Na captura de tela acima

  • Mostra a tabela "guru99" com o nome da coluna e valores
  • Consiste em três valores de linha r1, r2, r3 para o valor de coluna única c1
  • Mostra os valores associados às linhas

Exemplos:-

Os diferentes usos do comando scan

Comando

Uso

digitalize '.META.', {COLUMNS => 'info: regioninfo'}

Ele exibe todas as informações de metadados relacionadas às colunas que estão presentes nas tabelas no HBase

digitalize 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}

Ele exibe o conteúdo da tabela guru99 com suas famílias de coluna c1 e c2 limitando os valores a 10

digitalize 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}

Ele exibe o conteúdo de guru99 com seu nome de coluna c1 com os valores presentes entre o valor do atributo de intervalo de tempo mencionado

escaneie 'guru99', {RAW => verdadeiro, VERSÕES => 10}

Neste comando RAW => true fornece recursos avançados como exibir todos os valores de células presentes na tabela guru99

Exemplo de código:

Primeiro crie a tabela e coloque os valores na tabela

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

Captura de tela de entrada:

Se executarmos o comando scan

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

Ele exibirá a saída mostrada abaixo.

Captura de tela de saída:

A saída mostrada na captura de tela acima fornece as seguintes informações

  • Verificando a tabela guru99 com atributos RAW => true, VERSIONS => 1000
  • Exibindo linhas com famílias de colunas e valores
  • Na terceira linha, os valores exibidos mostram o valor excluído presente na coluna
  • A saída exibida por ele é aleatória; não pode ser a mesma ordem dos valores que inserimos na tabela

Comandos de replicação de cluster

  • Esses comandos funcionam no modo de configuração de cluster do HBase.
  • Para adicionar e remover pares no cluster e para iniciar e parar a replicação, esses comandos são usados ​​em geral.

Comando

Funcionalidade

add_peer

Adicione pares ao cluster para replicar

hbase> add_peer '3', zk1, zk2, zk3: 2182: / hbase-prod

remove_peer

Para o fluxo de replicação definido.

Exclui todas as informações de metadados sobre o par

hbase> remove_peer '1'

start_replication

Reinicia todos os recursos de replicação

hbase> start_replication

stop_replication

Pára todos os recursos de replicação

hbase> stop_replication

Resumo :

O shell HBase e os comandos gerais fornecem informações completas sobre os diferentes tipos de manipulação de dados, gerenciamento de tabelas e comandos de replicação de cluster. Podemos executar várias funções usando esses comandos em tabelas presentes no HBase.