HBase Skapa tabell med Java API & Shell Exempel

โšก Smart sammanfattning

HBase lagrar data i tabeller, och du kan skapa och hantera dessa tabeller pรฅ tvรฅ sรคtt: genom Java API med HTableDescripteller och HBaseAdmin, eller direkt i HBase-skalet med hjรคlp av kommandot create.

  • โ˜• Java API: Skapa tabeller i kod med HTableDescripteller, H-kolumnDescripteller och HBaseAdmin.
  • ๐Ÿš Shell skapa: Kommandot create bygger en tabell frรฅn ett namn och en eller flera kolumnfamiljer.
  • ๐Ÿงฌ Kolumnfamiljer: Varje tabell behรถver minst en kolumnfamilj, definierad nรคr tabellen skapas.
  • ๐Ÿ”ง ร„ndra tabeller: Kommandot alter lรคgger till kolumnfamiljer, anger VERSIONS eller รคndrar attribut fรถr tabellomfattning.
  • ๐Ÿ—‘๏ธ Tabellens livscykel: Inaktivera en tabell innan du รคndrar eller tar bort den, och aktivera den sedan igen fรถr att รฅteruppta skrivningar.
  • ๐Ÿค– AI-hjรคlp: AI-assistenter utarbetar kommandon fรถr att skapa, รคndra och ta bort dem samt granskar designen fรถr kolumnfamiljer.

HBase skapar tabell med Java API- och shell-kommandoexempel

Hur man skapar tabell i HBase med Java API

I HBase kan tabeller skapas pรฅ tvรฅ sรคtt: genom Java API och genom HBase-skalet. Det hรคr avsnittet behandlar Java API, som lรฅter en applikation skapa tabeller och ladda data programmatiskt som en del av ett stรถrre jobb.

Genom Java API kan vi skapa tabeller i HBase och รคven ladda data till tabeller med hjรคlp av Java kodning. De tvรฅ saker vi sรคtter upp hรคr รคr:

  • Upprรคtta en fรถrbindelse med HBase genom Java API.
  • Anvรคnda Eclipse fรถr Java kodning, felsรถkning och testning.

Fรถljande รคr stegen fรถr att skapa tabeller i HBase genom Java API.

Steg 1) Skapa en Java Projekt in Eclipse

I det hรคr steget ska vi skapa en Java projekt i Eclipse fรถr HBase-anslutningen, med namnet โ€HbaseConnectionโ€.

Den nya Java Projektdialogrutan nedan visar hur projektet โ€HbaseConnectionโ€ konfigureras:

Eclipse Nytt Java Projektdialogruta som skapar HbaseConnection-projektet med en JavaSE-1.7-miljรถ

Om vi โ€‹โ€‹tittar pรฅ skรคrmdumpen ovan:

  • Ange projektnamnet i den hรคr rutan. I vรฅrt fall รคr projektnamnet "HbaseConnection".
  • Markera den hรคr rutan fรถr standardplatsen dรคr den ska sparas. Hรคr รคr /home/hduser/work/HbaseConnection sรถkvรคgen.
  • Markera rutan fรถr Java miljรถn hรคr. I det hรคr fallet JavaSE-1.7 รคr den Java upplagan.
  • Vรคlj alternativet fรถr var du vill spara filen. I vรฅrt fall valde vi det andra alternativet, โ€Skapa en separat mapp fรถr kรคllkoder och klassfilerโ€.
  • Klicka pรฅ knappen Slutfรถr, vilket skapar projektet "HbaseConnection" i Eclipse och รถppnar Eclipse hemsidan.

Steg 2) Konfigurera byggvรคgen i Eclipse

Pรฅ Eclipse Fรถlj dessa steg fรถr att รถppna konfigurationen fรถr byggvรคgen pรฅ startsidan:

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

Skรคrmdumpen nedan visar hรถgerklicksmenyn som anvรคnds fรถr att รถppna konfigurationen av byggvรคgen:

Eclipse hรถgerklicksmenyn i projektet, vรคlj Byggsรถkvรคg och sedan Konfigurera Byggsรถkvรคg

Frรฅn skรคrmdumpen ovan:

  • Hรถgerklicka pรฅ ett projekt.
  • Vรคlj Byggvรคg.
  • Vรคlj Konfigurera byggsรถkvรคg.

Efter att du klickat pรฅ Konfigurera byggsรถkvรคg รถppnas ett annat fรถnster, som visas pรฅ skรคrmbilden nedan. Fliken Bibliotek รคr dรคr HBase- och Hadoop JAR-filerna lรคggs till i projektet:

Eclipse Java Fliken Bygg sรถkvรคgsbibliotek lรคgger till externa HBase- och Hadoop JAR-filer

I det hรคr steget lรคgger vi till relevanta HBase JAR-filer i Java projektet som visas pรฅ skรคrmdumpen.

  • Viktiga JAR-filer att lรคggas till: hbase-0.94.8.jar och hadoop-core-1.1.2.jar.
  • Gรฅ till fliken Bibliotek.
  • Tryck pรฅ alternativet Lรคgg till externa JAR-filer.
  • Vรคlj de viktiga JAR-filerna som krรคvs.
  • Tryck pรฅ knappen Slutfรถr fรถr att lรคgga till dessa filer i "src" fรถr Java projekt under bibliotek.

Nรคr JAR-filerna har lagts till visas de under projektets "src"-plats enligt nedan:

Eclipse projektutforskaren som visar de tillagda HBase- och Hadoop JAR-filerna under projektkรคllan

Alla JAR-filer som omfattas av projektet รคr nu redo att anvรคndas med Hadoop-ekosystemet.

Steg 3) Upprรคtta HBase-anslutningen

I det hรคr steget, med hjรคlp av HBaseConnection.java, upprรคttas HBase-anslutningen via Java kodning.

Pรฅ Eclipse toppmenyn, kรถr en Java program som visas nedan: Kรถr -> Kรถr som -> Java Applikation. Menyn nedan visar programmet som startas:

Eclipse Spring som Java Programmeny som startar HBaseConnection-programmet

  • Vรคlj Kรถr.
  • Vรคlj Kรถr som Java Ansรถkan.
  • Denna kod upprรคttar en anslutning till HBase via Java API.
  • Efter att ha kรถrt den hรคr koden skapas tabellen "guru99" i HBase med tvรฅ kolumnfamiljer med namnet "education" och "projects". Fรถr nรคrvarande skapas endast det tomma schemat i HBase.

Kodutdraget nedan belyser HTableDescripteller och addFamily-anrop som bygger tabellschemat:

Java kod med hjรคlp av HTableDescripteller och addFamily fรถr att definiera guru99-tabellen med kolumnfamiljerna utbildning och projekt

Frรฅn skรคrmdumpen ovan utfรถr vi fรถljande funktioner:

  • Anvรคnder HTableDescripteller sรฅ kan vi skapa tabellen "guru99" i HBase.
  • Med hjรคlp av addFamily-metoden lรคgger vi till โ€utbildningโ€ och โ€projektโ€ som kolumnfamiljer i tabellen โ€guru99โ€.

Koden nedan kommer att upprรคtta en anslutning med HBase och skapa tabellen "guru99" med tvรฅ kolumnfamiljer. Placera denna kod 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......");
    }
}

Detta รคr den obligatoriska koden du mรฅste placera i HBaseConnection.java innan du kรถr Java programmet.

Efter att ha kรถrt det hรคr programmet upprรคttar det en anslutning till HBase och skapar i sin tur en tabell med kolumnnamn.

  • Tabellnamnet รคr โ€guru99โ€.
  • Kolumnfamiljerna รคr โ€utbildningโ€ och โ€projektโ€.

Steg 4) Kontrollera den skapade tabellen i HBase

Vi kan kontrollera om tabellen โ€guru99โ€ รคr skapad med tvรฅ kolumnfamiljer i HBase genom att anvรคnda HBase-shelllรคget med kommandot โ€listโ€. Kommandot โ€listโ€ ger information om alla tabeller som skapats i HBase.

Att kรถra list-kommandot i HBase-skalet bekrรคftar den nya tabellen, som visas nedan:

HBase shell list-kommandoutdata som visar att guru99-tabellen skapades

  • Code checka in HBase-skalet genom att kรถra kommandot "list".
  • Om vi โ€‹โ€‹kรถr kommandot โ€listโ€ visas tabellen som skapats i HBase. I vรฅrt fall kan vi se att tabellen โ€guru99โ€ har skapats.

HBase Skapa tabell med Shell

Fรถrutom Java API, du kan skapa en tabell direkt frรฅn HBase-skalet, vilket รคr det snabbaste sรคttet att konfigurera en tabell fรถr snabba tester. Syntaxen fรถr att skapa en tabell i HBase med hjรคlp av skalet รคr:

Syntax: create <tablename>, <columnfamilyname>

Exempel:-

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

Exemplet ovan fรถrklarar hur man skapar en tabell i HBase med det angivna namnet enligt specifikationerna fรถr varje kolumnfamilj. Utรถver detta kan vi ocksรฅ skicka in vissa tabell-scope-attribut till den.

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

Hรคr anger blocket {NAME=>'Edu', VERSIONS=>โ€ฆ} en kolumnfamilj med namnet "Edu" och antalet cellversioner som den behรฅller. Det stora talet รคr bara illustrativt; i praktiken รคr VERSIONS ett litet vรคrde som 3 eller 5.

Lista, beskriv och verifiera HBase-tabeller

Att skapa en tabell รคr bara den fรถrsta delen av att hantera tabeller i HBase. Nรคr tabellen "guru99" finns finns det nรฅgra allmรคnna kommandon som lรฅter dig inspektera den och bekrรคfta dess tillstรฅnd innan du lรคser, skriver eller รคndrar data. Du kan kรถra dem alla frรฅn HBase skal.

Kommandot list returnerar varje anvรคndartabell i HBase:

hbase> list

Kommandot describe visar en tabells struktur, inklusive dess kolumnfamiljer och om den fรถr nรคrvarande รคr aktiverad:

hbase> describe 'guru99'

Kommandot exists kontrollerar om en tabell finns och is_enabled rapporterar om tabellen kan acceptera skrivningar:

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

Dessa skrivskyddade kontroller รคr sรคkra att kรถra nรคr som helst. De รคr det snabbaste sรคttet att bekrรคfta att en tabell skapades korrekt och att granska dess kolumnfamiljer innan data laddas.

ร„ndra en HBase-tabell

Ett HBase-tabellschema รคr inte fixat efter att det skapats. Kommandot alter รคndrar en tabells kolumnfamiljer och tabellomfรฅngsattribut utan att รฅterskapa den. Beroende pรฅ din HBase-version kan du behรถva inaktivera tabellen fรถrst, sedan kรถra alter och aktivera den igen.

Fรถr att lรคgga till en ny kolumnfamilj i tabellen "guru99":

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

Sรฅ hรคr anger du hur mรฅnga versioner en kolumnfamilj behรฅller:

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

Sรฅ hรคr tar du bort en kolumnfamilj frรฅn tabellen:

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

Du kan ocksรฅ รคndra attribut fรถr tabellens omfattning. Du kan till exempel markera tabellen som skrivskyddad eller stรคlla in den maximala filstorleken fรถr regionen till 128 MB:

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

Eftersom alter skriver om schemat, planera รคndringarna noggrant i en produktionstabell och bekrรคfta resultatet efterรฅt med describe.

Inaktivera, aktivera och ta bort HBase-tabeller

Fรถr att ta bort en tabell eller tillรคmpa vissa รคndringar krรคver HBase att du fรถrst inaktiverar den. Inaktivering gรถr att tabellen offlinefรถrs sรฅ att ingen klient kan lรคsa eller skriva till den, vilket gรถr strukturella รคndringar sรคkra.

Inaktivera en tabell och kontrollera dess tillstรฅnd med is_disabled:

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

Aktivera tabellen igen fรถr att รฅteruppta lรคsning och skrivning:

hbase> enable 'guru99'

En tabell mรฅste inaktiveras innan den kan tas bort.ping tar bort tabellen och all dess data permanent, sรฅ anvรคnd den med fรถrsiktighet:

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

Fรถr att ta bort flera tabeller samtidigt tar drop_all bort alla tabeller vars namn matchar ett reguljรคrt uttryck. Tillsammans kan du skapa, รคndra, inaktivera, aktivera och ta bort tabellerna och tรคcka hela livscykeln fรถr tabellen. hantering av data i HBase-tabeller.

Vanliga frรฅgor

Bรคsta praxis hรฅller antalet kolumnfamiljer lรฅgt, helst en till tre. HBase tรถmmer och komprimerar alla familjer i en region tillsammans, sรฅ att extra familjer sprider data รถver fler filer och gรถr lรคsningar och skrivningar lรฅngsammare. Gruppera relaterade kolumner till en enda familj nรคr det รคr mรถjligt.

Nej. Vid skapandet definierar du bara kolumnfamiljer. Kolumnkvalificerare รคr dynamiska och kan lรคggas till pรฅ vilken rad som helst nรคr du skriver data. Denna schemaflexibla design lรฅter varje rad innehรฅlla olika kolumner utan att tabellen fรถrst behรถver รคndras.

Anvรคnd trunkera 'guru99', vilket inaktiverar tabellen, tar bort den och รฅterskapar den med samma kolumnfamiljer. Schemat fรถrblir intakt medan varje rad tas bort. Detta รคr snabbare och renare รคn att ta bort rader en i taget.

Exemplet anvรคnder HBaseAdmin och HTableDescripteller, bรฅda รคr fรถrรฅldrade sedan HBase 1.0. Modern kod hรคmtar ett Admin-objekt frรฅn en Connection via ConnectionFactory och bygger schemat med tabellen.DescriptorBuilder och ColumnFamilyDescriptellerBuilder. Logiken fรถr att skapa tabeller fรถrblir densamma.

VERSIONS anger hur mรฅnga tidsstรคmplade versioner av varje cell en kolumnfamilj behรฅller. Standardvรคrdet รคr 1. Om รคldre versioner begรคrs med en get- eller scan-funktion returneras de tills det behรฅllna antalet รถverskrids, varefter komprimeringen tar bort de รคldsta cellerna.

HBase passar fรถr mycket stora, glesa datamรคngder som behรถver snabba slumpmรคssiga lรคsningar och skrivningar utรถver Hadoop och HDFS. Typiska anvรคndningsomrรฅden inkluderar tidsseriedata, meddelanden och realtidsanalys dรคr tabeller vรคxer till miljarder rader รถver mรฅnga noder.

AI-kodningsassistenter och stora sprรฅkmodeller utarbetar kommandon fรถr att skapa, รคndra och ta bort frรฅn tydliga uppmaningar, fรถrklarar kolumnfamiljsdesign och flaggar riskfyllda operationer som att ta bort kommandon.ping en tabell. Maskininlรคrning kan ocksรฅ analysera รฅtkomstmรถnster fรถr att rekommendera bรคttre layouter fรถr radnycklar och familjer, รคven om en ingenjรถr bรถr verifiera varje fรถrslag.

Ja. GitHub Copilot kan generera HBase-shellkommandon och Java klientkod fรถr att skapa, รคndra och slรคppaping tabeller frรฅn en kort kommentar. Revvisa dess utdata fรถr korrekt tabellnamn, kolumnfamiljer och aktuellt administratรถrs-API innan du kรถr det.

Sammanfatta detta inlรคgg med: