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.






