HBase Opret tabel med Java API & Shell eksempel

โšก Smart opsummering

HBase gemmer data i tabeller, og du kan oprette og hรฅndtere disse tabeller pรฅ to mรฅder: via Java API med HTableDescripteller og HBaseAdmin, eller direkte i HBase-shellen ved hjรฆlp af create-kommandoen.

  • โ˜• Java API'er: Opret tabeller i kode med HTableDescripteller, H-kolonneDescripteller og HBaseAdmin.
  • ๐Ÿš Shell-oprettelse: Kommandoen `create` opbygger en tabel ud fra et navn og en eller flere kolonnefamilier.
  • ๐Ÿงฌ Kolonnefamilier: Hver tabel skal bruge mindst รฉn kolonnefamilie, som defineres, nรฅr tabellen oprettes.
  • ๐Ÿ”ง ร†ndre tabeller: Kommandoen alter tilfรธjer kolonnefamilier, angiver VERSIONS eller รฆndrer tabel-scope-attributter.
  • ๐Ÿ—‘๏ธ Tabellivscyklus: Deaktiver en tabel, fรธr du รฆndrer eller sletter den, og aktiver den derefter igen for at genoptage skrivninger.
  • ๐Ÿค– AI-assistance: AI-assistenter udarbejder udkast til oprettelse, รฆndring og sletning af kommandoer og gennemgรฅr designet af kolonnefamilier.

HBase opretter tabel med Java Eksempel pรฅ API- og shell-kommando

Sรฅdan opretter du tabel i HBase med Java API

I HBase kan tabeller oprettes pรฅ to mรฅder: via Java API og gennem HBase-shellen. Dette afsnit dรฆkker Java API, som lader en applikation oprette tabeller og indlรฆse data programmatisk som en del af et stรธrre job.

Gennem Java API kan vi oprette tabeller i HBase og ogsรฅ indlรฆse data i tabeller vha Java kodning. De to ting, vi sรฆtter op her, er:

  • Etablering af forbindelse med HBase gennem Java API.
  • Ved brug af Eclipse forum Java kodning, debugging og testning.

Fรธlgende er trinene til at oprette tabeller i HBase igennem Java API.

Trin 1) Opret en Java Projekt i Eclipse

I dette trin skal vi skabe en Java projekt i Eclipse for HBase-forbindelsen, med navnet โ€œHbaseConnectionโ€.

The New Java Projektdialogboksen nedenfor viser, hvordan "HbaseConnection"-projektet konfigureres:

Eclipse Ny Java Projektdialogboks, der opretter HbaseConnection-projektet med en JavaSE-1.7 miljรธ

Hvis vi ser pรฅ skรฆrmbilledet ovenfor:

  • Angiv projektnavnet i denne boks. I vores tilfรฆlde er projektnavnet "HbaseConnection".
  • Markรฉr dette felt for standardplaceringen, der skal gemmes. Her er /home/hduser/work/HbaseConnection stien.
  • Marker afkrydsningsfeltet for Java miljรธ her. I dette tilfรฆlde JavaSE-1.7 er Java udgave.
  • Vรฆlg den mulighed for, hvor du vil gemme filen. I vores tilfรฆlde valgte vi den anden mulighed, "Opret en separat mappe til kilder og klassefiler".
  • Klik pรฅ knappen Udfรธr, hvilket opretter projektet "HbaseConnection" i Eclipse og รฅbner Eclipse hjemmeside.

Trin 2) Konfigurer byggestien i Eclipse

Pรฅ Eclipse Fรธlg disse trin for at รฅbne konfigurationen af โ€‹โ€‹byggestien pรฅ hjemmesiden:

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

Skรฆrmbilledet nedenfor viser hรธjreklikmenuen, der bruges til at รฅbne konfigurationen af โ€‹โ€‹byggestien:

Eclipse hรธjreklik pรฅ projektets menu, vรฆlg Byg sti og derefter Konfigurer Byg sti

Fra ovenstรฅende skรฆrmbillede:

  • Hรธjreklik pรฅ et projekt.
  • Vรฆlg Byg sti.
  • Vรฆlg Konfigurer byggesti.

Nรฅr du har klikket pรฅ Konfigurer byggesti, รฅbnes et andet vindue, som vist pรฅ skรฆrmbilledet nedenfor. Fanen Biblioteker er der, hvor HBase- og Hadoop JAR-filerne fรธjes til projektet:

Eclipse Java Fanen Opbyg stibiblioteker tilfรธjer eksterne HBase- og Hadoop JAR-filer

I dette trin tilfรธjer vi de relevante HBase JAR'er til Java projekt som vist pรฅ skรฆrmbilledet.

  • Vigtige JAR-filer, der skal tilfรธjes: hbase-0.94.8.jar og hadoop-core-1.1.2.jar.
  • Gรฅ til fanen Biblioteker.
  • Tryk pรฅ indstillingen Tilfรธj eksterne JAR-filer.
  • Vรฆlg de nรธdvendige vigtige JAR-filer.
  • Tryk pรฅ knappen Udfรธr for at tilfรธje disse filer til "src"-mappen. Java projekt under Biblioteker.

Nรฅr JAR-filerne er tilfรธjet, vises de under projektets "src"-placering som vist nedenfor:

Eclipse projektudforsker, der viser de tilfรธjede HBase- og Hadoop JAR-filer under projektkilden

Alle JAR-filer, der falder ind under projektet, er nu klar til brug med Hadoop-รธkosystemet.

Trin 3) Etabler HBase-forbindelsen

I dette trin oprettes HBase-forbindelsen ved hjรฆlp af HBaseConnection.java Java kodning.

Pรฅ Eclipse topmenu, udfรธr en Java program som vist nedenfor: Kรธr -> Kรธr som -> Java Applikation. Menuen nedenfor viser det program, der startes:

Eclipse Lรธb som Java Programmenu, der starter HBaseConnection-programmet

  • Vรฆlg Kรธr.
  • Vรฆlg Kรธr som Java Ansรธgning.
  • Denne kode opretter en forbindelse med HBase via Java API.
  • Efter at have kรธrt denne kode, oprettes tabellen "guru99" i HBase med to kolonnefamilier med navnene "uddannelse" og "projekter". I รธjeblikket oprettes kun det tomme skema i HBase.

Kodeuddraget nedenfor fremhรฆver HTableDescripteller og addFamily-kald, der bygger tabelskemaet:

Java kode ved hjรฆlp af HTableDescripteller og addFamily for at definere guru99-tabellen med kolonnefamilierne for uddannelse og projekter

Fra skรฆrmbilledet ovenfor udfรธrer vi fรธlgende funktioner:

  • Brug af HTableDescripteller vi kan oprette tabellen "guru99" i HBase.
  • Ved hjรฆlp af addFamily-metoden tilfรธjer vi "uddannelse" og "projekter" som kolonnefamilier til tabellen "guru99".

Koden nedenfor etablerer en forbindelse med HBase og opretter tabellen "guru99" med to kolonnefamilier. Placer denne kode under HBaseConnection.java-dokumentet:

// 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......");
    }
}

Dette er den nรธdvendige kode, du skal placere i HBaseConnection.java, fรธr du kรธrer Java program.

Efter at have kรธrt dette program, etablerer det en forbindelse med HBase og opretter derefter en tabel med kolonnenavne.

  • Tabellens navn er โ€œguru99โ€.
  • Kolonnefamilierne er "uddannelse" og "projekter".

Trin 4) Tjek den oprettede tabel i HBase

Vi kan kontrollere, om tabellen โ€œguru99โ€ er oprettet med to kolonnefamilier i HBase, ved at bruge HBase shell-tilstand med kommandoen โ€œlistโ€. Kommandoen โ€œlistโ€ giver information om alle de tabeller, der er oprettet i HBase.

Kรธrsel af list-kommandoen i HBase-shellen bekrรฆfter den nye tabel, som vist nedenfor:

HBase shell list-kommandooutput, der viser, at guru99-tabellen blev oprettet

  • Code tjekker i HBase-shellen ved at udfรธre kommandoen "list".
  • Hvis vi kรธrer kommandoen "list", vises tabellen oprettet i HBase. I vores tilfรฆlde kan vi se, at tabellen "guru99" er oprettet.

HBase Opret tabel med Shell

Udover Java API, kan du oprette en tabel direkte fra HBase-shell'en, hvilket er den hurtigste mรฅde at konfigurere en tabel til hurtige tests. Syntaksen til at oprette en tabel i HBase ved hjรฆlp af shell'en er:

Syntax: create <tablename>, <columnfamilyname>

Eksempel:-

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

Ovenstรฅende eksempel forklarer, hvordan man opretter en tabel i HBase med det angivne navn i henhold til specifikationerne for hver kolonnefamilie. Derudover kan vi ogsรฅ overfรธre nogle tabel-scope-attributter til den.

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

Her angiver blokken {NAME=>'Edu', VERSIONS=>โ€ฆ} en kolonnefamilie med navnet "Edu" og antallet af celleversioner, den gemmer. Det store tal er kun illustrativt; i praksis er VERSIONS en lille vรฆrdi, sรฅsom 3 eller 5.

Liste, beskrive og verificere HBase-tabeller

Oprettelse af en tabel er kun den fรธrste del af hรฅndteringen af โ€‹โ€‹tabeller i HBase. Nรฅr tabellen "guru99" findes, giver et par generelle kommandoer dig mulighed for at inspicere den og bekrรฆfte dens tilstand, fรธr du lรฆser, skriver eller รฆndrer data. Du kan kรธre dem alle fra HBase skal.

Kommandoen `list` returnerer alle brugertabeller i HBase:

hbase> list

Kommandoen `describe` viser en tabels struktur, inklusive dens kolonnefamilier og om den i รธjeblikket er aktiveret:

hbase> describe 'guru99'

Kommandoen exists kontrollerer, om en tabel er til stede, og is_enabled rapporterer, om tabellen kan acceptere skrivninger:

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

Disse skrivebeskyttede kontroller kan kรธres sikkert nรฅr som helst. De er den hurtigste mรฅde at bekrรฆfte, at en tabel er oprettet korrekt, og at gennemgรฅ dens kolonnefamilier, fรธr data indlรฆses.

ร†ndre en HBase-tabel

Et HBase-tabelskema er ikke rettet efter oprettelse. Kommandoen alter รฆndrer en tabels kolonnefamilier og tabel-scope-attributter uden at genskabe den. Afhรฆngigt af din HBase-version skal du muligvis fรธrst deaktivere tabellen, derefter kรธre alter og aktivere den igen.

Sรฅdan tilfรธjer du en ny kolonnefamilie til tabellen "guru99":

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

Sรฅdan indstiller du, hvor mange versioner en kolonnefamilie gemmer:

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

Sรฅdan sletter du en kolonnefamilie fra tabellen:

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

Du kan ogsรฅ รฆndre attributter for tabel-scope. For eksempel kan du markere tabellen som skrivebeskyttet, eller indstille den maksimale regionfilstรธrrelse til 128 MB:

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

Fordi alter omskriver skemaet, skal du omhyggeligt planlรฆgge รฆndringerne i en produktionstabel og bekrรฆfte resultatet bagefter med describe.

Deaktiver, aktivรฉr og slet HBase-tabeller

For at fjerne en tabel eller anvende bestemte รฆndringer krรฆver HBase, at du fรธrst deaktiverer den. Deaktivering bringer tabellen offline, sรฅ ingen klient kan lรฆse eller skrive til den, hvilket gรธr strukturelle รฆndringer sikre.

Deaktiver en tabel, og tjek dens tilstand med is_disabled:

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

Aktiver tabellen igen for at genoptage lรฆsning og skrivning:

hbase> enable 'guru99'

En tabel skal deaktiveres, fรธr den kan slettes.ping sletter tabellen og alle dens data permanent, sรฅ brug den med forsigtighed:

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

For at fjerne flere tabeller pรฅ รฉn gang sletter drop_all alle tabeller, hvis navn matcher et regulรฆrt udtryk. Opret, รฆndr, deaktiver, aktiver og fjern sammen, og dรฆk hele livscyklussen for hรฅndtering af data i HBase-tabeller.

Ofte Stillede Spรธrgsmรฅl

Bedste praksis holder antallet af kolonnefamilier lavt, ideelt set en til tre. HBase tรธmmer og komprimerer alle familier i en region sammen, sรฅ ekstra familier spreder data pรฅ tvรฆrs af flere filer og sรฆnker lรฆsning og skrivning. Gruppรฉr relaterede kolonner i en enkelt familie, nรฅr det er muligt.

Nej. Ved oprettelsen definerer du kun kolonnefamilier. Kolonnekvalifikatorer er dynamiske og kan tilfรธjes pรฅ enhver rรฆkke, nรฅr du skriver data. Dette skemafleksible design lader hver rรฆkke indeholde forskellige kolonner uden fรธrst at รฆndre tabellen.

Brug trunkeringen 'guru99', som deaktiverer tabellen, sletter den og genskaber den med de samme kolonnefamilier. Skemaet forbliver intakt, mens hver rรฆkke fjernes. Dette er hurtigere og mere overskueligt end at slette rรฆkker รฉn ad gangen.

Eksemplet bruger HBaseAdmin og HTableDescripteller begge er udfaset siden HBase 1.0. Moderne kode henter et Admin-objekt fra en Connection via ConnectionFactory og bygger skemaet med TableDescriptellerBuilder og KolonnefamilieDescriptellerBuilder. Logikken for tabeloprettelse forbliver den samme.

VERSIONS angiver, hvor mange tidsstemplede versioner af hver celle en kolonnefamilie gemmer. Standardvรฆrdien er 1. Anmodning om รฆldre versioner med en get- eller scan-funktion returnerer dem, indtil det beholdte antal overskrides, hvorefter komprimering fjerner de รฆldste celler.

HBase er egnet til meget store, sparsomme datasรฆt, der krรฆver hurtige tilfรฆldige lรฆsninger og skrivninger oven pรฅ Hadoop og HDFS. Typiske anvendelser omfatter tidsseriedata, messaging og realtidsanalyse, hvor tabeller vokser til milliarder af rรฆkker pรฅ tvรฆrs af mange noder.

AI-kodningsassistenter og store sprogmodeller udarbejder oprettelses-, รฆndrings- og sletningskommandoer fra letforstรฅelige prompter, forklarer kolonnefamiliedesign og markerer risikable handlinger sรฅsom sletning.ping en tabel. Maskinlรฆring kan ogsรฅ analysere adgangsmรธnstre for at anbefale bedre rรฆkke-nรธgle- og familielayouts, selvom en tekniker bรธr verificere hvert forslag.

Ja. GitHub Copilot kan generere HBase shell-kommandoer og Java klientkode til oprettelse, รฆndring og sletningping tabeller fra en kort kommentar. RevSe dens output for det korrekte tabelnavn, kolonnefamilier og den aktuelle Admin API, fรธr du kรธrer den.

Opsummer dette indlรฆg med: