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.

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






