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.

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






