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.







