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: