HBase Criar tabela com Java Exemplo de API e Shell

⚡ Resumo Inteligente

O HBase armazena dados em tabelas, e você pode criar e manipular essas tabelas de duas maneiras: através do Java API com HTableDescriptou no HBaseAdmin, ou diretamente no shell do HBase usando o comando create.

  • ☕ Java API: Crie tabelas em código com HTable.Descriptou, HColumnDescriptou, e HBaseAdmin.
  • 🐚 Criar Shell: O comando create cria uma tabela a partir de um nome e uma ou mais famílias de colunas.
  • 🧬 Famílias de colunas: Cada tabela precisa de pelo menos uma família de colunas, definida quando a tabela é criada.
  • 🔧 Alterar tabelas: O comando ALTER adiciona famílias de colunas, define VERSIONS ou altera atributos de escopo de tabela.
  • 🗑️ Ciclo de vida da tabela: Desative uma tabela antes de alterá-la ou excluí-la e, em seguida, ative-a novamente para retomar as gravações.
  • 🤖 Assistência de IA: Assistentes de IA elaboram comandos para criar, alterar e excluir, além de revisar o design de famílias de colunas.

Criar tabela HBase com Java Exemplo de API e comando de shell

Como criar tabela no HBase com Java API

No HBase, as tabelas podem ser criadas de duas maneiras: através do Java API e através do shell do HBase. Esta seção aborda a Java API, que permite que um aplicativo crie tabelas e carregue dados programaticamente como parte de uma tarefa maior.

Através da Java API, podemos criar tabelas em HBase e também carregar dados em tabelas usando Java codificação. As duas coisas que configuramos aqui são:

  • Estabelecendo uma conexão com o HBase por meio de Java API.
  • Utilizar painéis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefícios: Eclipse pela Java Codificação, depuração e testes.

A seguir estão as etapas para criar tabelas no HBase por meio de Java API.

Etapa 1) Crie um Java Projeto em Eclipse

Nesta etapa, vamos criar um Java projeto em Eclipse para a conexão HBase, denominada “HbaseConnection”.

O Novo Java A caixa de diálogo do projeto abaixo mostra o projeto “HbaseConnection” sendo configurado:

Eclipse New Java Diálogo de projeto criando o projeto HbaseConnection com um JavaAmbiente SE-1.7

Se observarmos a captura de tela acima:

  • Insira o nome do projeto nesta caixa. No nosso caso, o nome do projeto é “HbaseConnection”.
  • Marque esta caixa para definir o local padrão onde o HbaseConnection será salvo. Neste caso, o caminho é /home/hduser/work/HbaseConnection.
  • Marque a caixa para o Java ambiente aqui. Neste caso JavaSE-1.7 é o Java Edição.
  • Escolha a opção que indica onde deseja salvar o arquivo. No nosso caso, selecionamos a segunda opção: “Criar uma pasta separada para arquivos de origem e de classe”.
  • Clique no botão Concluir, que cria o projeto “HbaseConnection” em Eclipse e abre o Eclipse home page.

Etapa 2) Configure o caminho de construção em Eclipse

No Eclipse Na página inicial, siga estes passos para abrir a configuração do caminho de compilação:

Right click on project -> Select Build Path -> Configure build path

A captura de tela abaixo mostra o menu de contexto (clique com o botão direito do mouse) usado para abrir a configuração do caminho de compilação:

Eclipse No menu de contexto do projeto (clique com o botão direito do mouse), selecione "Caminho de Construção" e, em seguida, "Configurar Caminho de Construção".

Conforme a captura de tela acima:

  • Clique com o botão direito do mouse em um projeto.
  • Selecione o caminho de construção.
  • Selecione Configurar Caminho de Construção.

Após clicar em "Configurar Caminho de Construção", outra janela será aberta, conforme mostrado na captura de tela abaixo. A aba "Bibliotecas" é onde os arquivos JAR do HBase e do Hadoop são adicionados ao projeto:

Eclipse Java Na guia "Bibliotecas do Caminho de Construção", é possível adicionar arquivos JAR externos do HBase e do Hadoop.

Nesta etapa, adicionamos os arquivos JAR relevantes do HBase ao... Java projeto conforme mostrado na captura de tela.

  • Arquivos JAR importantes a serem adicionados: hbase-0.94.8.jar e hadoop-core-1.1.2.jar.
  • Acesse a aba Bibliotecas.
  • Selecione a opção Adicionar JARs externos.
  • Selecione os arquivos JAR importantes necessários.
  • Pressione o botão Concluir para adicionar esses arquivos à pasta “src” do Java Projeto no âmbito das Bibliotecas.

Após a adição dos arquivos JAR, eles aparecerão na pasta "src" do projeto, conforme mostrado abaixo:

Eclipse O explorador de projetos mostra os arquivos JAR do HBase e do Hadoop adicionados à origem do projeto.

Todos os arquivos JAR pertencentes ao projeto estão agora prontos para uso no ecossistema Hadoop.

Etapa 3) Estabeleça a conexão HBase

Nesta etapa, utilizando HBaseConnection.java, a conexão com o HBase é estabelecida através de Java codificação.

No Eclipse menu superior, execute um Java programa conforme mostrado abaixo: Executar -> Executar como -> Java Aplicativo. O menu abaixo mostra o programa que está sendo iniciado:

Eclipse Correr como Java Menu de aplicativos que inicia o programa HBaseConnection

  • Selecione Executar.
  • Selecione Executar como Java Aplicação.
  • Este código estabelece uma conexão com o HBase através de Java API.
  • Após a execução deste código, a tabela “guru99” é criada no HBase com duas famílias de colunas denominadas “education” e “projects”. No momento, apenas o esquema vazio foi criado no HBase.

O trecho de código abaixo destaca a HTable.Descriptou chamadas addFamily que constroem o esquema da tabela:

Java código usando HTableDescriptou adicioneFamily para definir a tabela guru99 com famílias de colunas de educação e projetos.

Conforme a captura de tela acima, estamos executando as seguintes funções:

  • Usando HTableDescriptOu podemos criar a tabela “guru99” no HBase.
  • Utilizando o método addFamily, adicionamos “education” e “projects” como famílias de colunas à tabela “guru99”.

O código abaixo estabelecerá uma conexão com o HBase e criará a tabela “guru99” com duas famílias de colunas. Insira este código no arquivo HBaseConnection.java:

// Place this code inside Hbase connection
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
Import org.apache.hadoop.hbase.client.HBaseAdmin;

public class HBaseConnection
{
    public static void main(String[] args) throws IOException
    {
	HBaseConfigurationhc = new HBaseConfiguration(new Configuration());
	HTableDescriptorht = new HTableDescriptor("guru99");

	ht.addFamily( new HColumnDescriptor("education"));
	ht.addFamily( new HColumnDescriptor("projects"));
	System.out.println( "connecting" );
	HBaseAdminhba = new HBaseAdmin( hc );

	System.out.println( "Creating Table" );
	hba.createTable( ht );
	System.out.println("Done......");
    }
}

Este é o código obrigatório que você precisa inserir em HBaseConnection.java antes de executar o programa. Java .

Após a execução deste programa, ele estabelece uma conexão com o HBase e, por sua vez, cria uma tabela com os nomes das colunas.

  • O nome da tabela é “guru99”.
  • As famílias de colunas são “educação” e “projetos”.

Etapa 4) Verifique a tabela criada no HBase

Podemos verificar se a tabela “guru99” foi criada com duas famílias de colunas no HBase usando o modo shell do HBase com o comando “list”. O comando “list” fornece informações sobre todas as tabelas criadas no HBase.

Executar o comando `list` no shell do HBase confirma a nova tabela, conforme mostrado abaixo:

A saída do comando `hBase shell list` mostra que a tabela `guru99` foi criada.

  • Code Verificando no shell do HBase, executando o comando “list”.
  • Se executarmos o comando “list”, ele exibirá as tabelas criadas no HBase. No nosso caso, podemos ver que a tabela “guru99” foi criada.

HBase Criar Tabela com Shell

Além do Java Com a API, você pode criar uma tabela diretamente do shell do HBase, que é a maneira mais rápida de configurar uma tabela para testes rápidos. A sintaxe para criar uma tabela no HBase usando o shell é:

Syntax: create <tablename>, <columnfamilyname>

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, 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.

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}

Aqui, o bloco {NAME=>'Edu', VERSIONS=>…} define uma família de colunas chamada “Edu” e o número de versões de células que ela mantém. O número grande é apenas ilustrativo; na prática, VERSIONS é um valor pequeno, como 3 ou 5.

Listar, descrever e verificar tabelas do HBase

Criar uma tabela é apenas o primeiro passo para lidar com tabelas no HBase. Depois que a tabela “guru99” existe, alguns comandos gerais permitem inspecioná-la e confirmar seu estado antes de ler, gravar ou modificar dados. Você pode executar todos esses comandos a partir do... Shell do HBase.

O comando list retorna todas as tabelas de usuários no HBase:

hbase> list

O comando describe exibe a estrutura de uma tabela, incluindo suas famílias de colunas e se ela está atualmente habilitada:

hbase> describe 'guru99'

O comando `exists` verifica se uma tabela existe e o comando `is_enabled` informa se a tabela pode aceitar gravações:

hbase> exists 'guru99'
hbase> is_enabled 'guru99'

Essas verificações somente leitura podem ser executadas com segurança a qualquer momento. Elas são a maneira mais rápida de confirmar se uma tabela foi criada corretamente e de revisar suas famílias de colunas antes de carregar os dados.

Alterar uma tabela HBase

O esquema de uma tabela HBase não é fixo após a sua criação. O comando ALTER modifica as famílias de colunas e os atributos de escopo da tabela sem recriá-la. Dependendo da sua versão do HBase, pode ser necessário desabilitar a tabela primeiro, executar o comando ALTER e, em seguida, habilitá-la novamente.

Para adicionar uma nova família de colunas à tabela “guru99”:

hbase> alter 'guru99', {NAME => 'contact'}

Para definir quantas versões uma família de colunas mantém:

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

Para excluir uma família de colunas da tabela:

hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}

Você também pode alterar os atributos de escopo da tabela. Por exemplo, marque a tabela como somente leitura ou defina o tamanho máximo do arquivo da região para 128 MB:

hbase> alter 'guru99', READONLY
hbase> alter 'guru99', MAX_FILESIZE => '134217728'

Como o comando ALTER reescreve o esquema, planeje as alterações cuidadosamente em uma tabela de produção e confirme o resultado posteriormente com o comando DESCRIBE.

Desativar, ativar e excluir tabelas do HBase

Para remover uma tabela ou aplicar determinadas alterações, o HBase exige que você a desabilite primeiro. A desabilitação coloca a tabela offline, impedindo que qualquer cliente a leia ou grave, o que torna as alterações estruturais seguras.

Desabilite uma tabela e verifique seu estado com is_disabled:

hbase> disable 'guru99'
hbase> is_disabled 'guru99'

Habilite a tabela novamente para retomar as operações de leitura e gravação:

hbase> enable 'guru99'

Uma tabela precisa ser desativada antes de poder ser removida. Removerping Apaga a tabela e todos os seus dados permanentemente, portanto, use com cuidado:

hbase> disable 'guru99'
hbase> drop 'guru99'

Para remover várias tabelas de uma só vez, o comando `drop_all` exclui todas as tabelas cujos nomes correspondem a uma expressão regular. Juntos, os comandos `create`, `alter`, `disable`, `enable` e `drop` abrangem todo o ciclo de vida de uma tabela. tratamento de dados em tabelas HBase.

Perguntas Frequentes

A melhor prática é manter o número de famílias de colunas baixo, idealmente de uma a três. O HBase sincroniza e compacta todas as famílias de uma região, portanto, famílias extras espalham os dados por mais arquivos e tornam as operações de leitura e gravação mais lentas. Agrupe colunas relacionadas em uma única família sempre que possível.

Não. No momento da criação, você define apenas as famílias de colunas. Os qualificadores de coluna são dinâmicos e podem ser adicionados a qualquer linha ao gravar dados. Esse design flexível em relação ao esquema permite que cada linha contenha colunas diferentes sem a necessidade de alterar a tabela previamente.

Use o comando `truncate 'guru99'`, que desabilita a tabela, a exclui e a recria com as mesmas famílias de colunas. O esquema permanece intacto enquanto cada linha é removida. Isso é mais rápido e limpo do que excluir linhas uma por uma.

O exemplo utiliza HBaseAdmin e HTable.Descriptou ambos obsoletos desde o HBase 1.0. O código moderno obtém um objeto Admin de uma Connection por meio do ConnectionFactory e constrói o esquema com Table.Descriptou Construtor e Família de ColunasDescriptorBuilder. A lógica de criação da tabela permanece a mesma.

VERSIONS define quantas versões com carimbo de data/hora de cada célula uma família de colunas mantém. O padrão é 1. Solicitar versões mais antigas com um comando GET ou SCAN as retorna até que o número de células retidas seja excedido, após o qual a compactação remove as células mais antigas.

O HBase é adequado para conjuntos de dados muito grandes e esparsos que precisam de leituras e gravações aleatórias rápidas sobre o Hadoop e o HDFS. Os usos típicos incluem dados de séries temporais, mensagens e análises em tempo real, onde as tabelas crescem para bilhões de linhas em vários nós.

Assistentes de codificação de IA e grandes modelos de linguagem elaboram comandos de criação, alteração e exclusão a partir de prompts em linguagem natural, explicam o design de famílias de colunas e sinalizam operações de risco, como a exclusão.ping uma tabela. O aprendizado de máquina também pode analisar padrões de acesso para recomendar layouts melhores de chaves de linha e famílias de chaves, embora um engenheiro deva verificar cada sugestão.

Sim. Travas deslizantes portáteis Copiloto do GitHub pode gerar comandos de shell do HBase e Java Código do cliente para criar, alterar e soltarping Tabelas a partir de um breve comentário. RevVerifique se o resultado indica o nome correto da tabela, as famílias de colunas e a API de administração atual antes de executá-lo.

Resuma esta postagem com: