HBase Tabel maken met Java API & Shell-voorbeeld
⚡ Slimme samenvatting
HBase slaat gegevens op in tabellen, en je kunt die tabellen op twee manieren aanmaken en beheren: via de Java API met HTableDescriptof via HBaseAdmin, of rechtstreeks in de HBase-shell met behulp van het commando `create`.
Hoe u een tabel in HBase maakt met Java API
In HBase kunnen tabellen op twee manieren worden aangemaakt: via de Java API en via de HBase-shell. Deze sectie behandelt de Java Een API waarmee een applicatie programmatisch tabellen kan aanmaken en gegevens kan laden als onderdeel van een grotere taak.
Door Java API, we kunnen tabellen maken in HBase en ook gegevens in tabellen laden met behulp van Java programmeren. De twee dingen die we hier hebben ingesteld zijn:
- Verbinding maken met HBase via Java API.
- gebruik Eclipse besteld, Java Coderen, debuggen en testen.
Hieronder staan de stappen om tabellen in HBase te maken via Java API.
Stap 1) Maak een Java Projecteren in Eclipse
In deze stap gaan we een Java project in Eclipse voor de HBase-verbinding, genaamd "HbaseConnection".
De Nieuwe Java Het onderstaande projectdialoogvenster toont hoe het project "HbaseConnection" wordt ingesteld:
Als we naar de bovenstaande schermafbeelding kijken:
- Voer de projectnaam in dit vak in. In ons geval is de projectnaam "HbaseConnection".
- Vink dit vakje aan voor de standaardlocatie waar de bestanden worden opgeslagen. In dit geval is het pad /home/hduser/work/HbaseConnection.
- Vink het vakje aan voor de Java omgeving hier. In dit geval JavaSE-1.7 is de Java editie.
- Kies de optie waar je het bestand wilt opslaan. In ons geval hebben we de tweede optie geselecteerd: "Een aparte map maken voor bronbestanden en klassebestanden".
- Klik op de knop Voltooien, waarmee het project "HbaseConnection" wordt aangemaakt. Eclipse en opent de Eclipse home page.
Stap 2) Configureer het bouwpad in Eclipse
Op de Eclipse Volg deze stappen om de configuratie van het buildpad te openen:
Right click on project -> Select Build Path -> Configure build path
De onderstaande schermafbeelding toont het rechtermuisklikmenu waarmee de configuratie van het buildpad kan worden geopend:
Uit de bovenstaande schermafbeelding:
- Klik met de rechtermuisknop op een project.
- Selecteer het bouwpad.
- Selecteer 'Buildpad configureren'.
Na het klikken op 'Buildpad configureren' wordt een nieuw venster geopend, zoals te zien is in de onderstaande schermafbeelding. Op het tabblad 'Bibliotheken' worden de HBase- en Hadoop-JAR-bestanden aan het project toegevoegd.
In deze stap voegen we de relevante HBase JAR-bestanden toe aan de Java project zoals weergegeven in de schermafbeelding.
- Belangrijke JAR-bestanden die toegevoegd moeten worden: hbase-0.94.8.jar en hadoop-core-1.1.2.jar.
- Ga naar het tabblad Bibliotheken.
- Selecteer de optie 'Externe JAR-bestanden toevoegen'.
- Selecteer de benodigde belangrijke JAR-bestanden.
- Druk op de knop Voltooien om deze bestanden toe te voegen aan de "src" van de Java project onder de noemer Bibliotheken.
Nadat de JAR-bestanden zijn toegevoegd, verschijnen ze in de "src"-map van het project, zoals hieronder weergegeven:
Alle JAR-bestanden die onder het project vallen, zijn nu klaar voor gebruik binnen het Hadoop-ecosysteem.
Stap 3) Breng de HBase-verbinding tot stand
In deze stap wordt met behulp van HBaseConnection.java de HBase-verbinding tot stand gebracht. Java codering.
Op de Eclipse bovenste menu, uitvoeren Java Programma zoals hieronder weergegeven: Uitvoeren -> Uitvoeren als -> Java Applicatie. Het onderstaande menu toont het programma dat wordt gestart:
- Selecteer Uitvoeren.
- Selecteer 'Uitvoeren als' Java Toepassing.
- Deze code legt een verbinding met HBase tot stand via Java API.
- Na het uitvoeren van deze code wordt de tabel "guru99" in HBase aangemaakt met twee kolomfamilies genaamd "education" en "projects". Momenteel wordt er in HBase alleen een leeg schema aangemaakt.
Het onderstaande codefragment illustreert de HTable.Descriptof de addFamily-aanroepen die het tabelschema opbouwen:
Uit de bovenstaande schermafbeelding blijkt dat we de volgende functies uitvoeren:
- HTable gebruikenDescriptOf we kunnen de tabel "guru99" in HBase aanmaken.
- Met behulp van de addFamily-methode voegen we 'education' en 'projects' toe als kolomfamilies aan de tabel 'guru99'.
De onderstaande code legt een verbinding met HBase tot stand en maakt de tabel "guru99" aan met twee kolomfamilies. Plaats deze code in het document HBaseConnection.java:
// 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......"); } }
Dit is de code die u in HBaseConnection.java moet plaatsen voordat u het programma uitvoert. Java programma.
Na het uitvoeren van dit programma wordt een verbinding met HBase tot stand gebracht, waarna een tabel met kolomnamen wordt aangemaakt.
- De tabelnaam is “guru99”.
- De kolomcategorieën zijn 'onderwijs' en 'projecten'.
Stap 4) Controleer de gemaakte tabel in HBase
We kunnen controleren of de tabel "guru99" in HBase is aangemaakt met twee kolomfamilies door de HBase-shellmodus te gebruiken met het commando "list". Het commando "list" geeft informatie over alle tabellen die in HBase zijn aangemaakt.
Het uitvoeren van het commando `list` in de HBase-shell bevestigt de aanwezigheid van de nieuwe tabel, zoals hieronder weergegeven:
- Code Dit kan in de HBase-shell door het commando "list" uit te voeren.
- Als we het commando "list" uitvoeren, worden de tabellen weergegeven die in HBase zijn aangemaakt. In ons geval zien we dat de tabel "guru99" is aangemaakt.
HBase Tabel maken met shell
Naast Java Via de API kun je rechtstreeks vanuit de HBase-shell een tabel aanmaken. Dit is de snelste manier om een tabel op te zetten voor snelle tests. De syntax om een tabel in HBase aan te maken via de shell is:
Syntax: create <tablename>, <columnfamilyname>
Voorbeeld:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
Het bovenstaande voorbeeld laat zien hoe je in HBase een tabel aanmaakt met de opgegeven naam, volgens de specificaties voor elke kolomfamilie. Daarnaast kunnen we er ook enkele tabelspecifieke attributen aan meegeven.
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}
Hier stelt het blok {NAME=>'Edu', VERSIONS=>…} een kolomfamilie in met de naam "Edu" en het aantal celversies dat bewaard wordt. Het grote getal is slechts ter illustratie; in de praktijk is VERSIONS een kleine waarde, zoals 3 of 5.
Lijst, beschrijf en verifieer HBase-tabellen
Het aanmaken van een tabel is slechts het eerste deel van het werken met tabellen in HBase. Zodra de tabel "guru99" bestaat, kunt u met een paar algemene commando's de status ervan controleren voordat u gegevens leest, schrijft of wijzigt. U kunt ze allemaal uitvoeren vanuit de HBase-schaal.
Het commando `list` geeft alle gebruikerstabellen in HBase weer:
hbase> list
Het commando `describe` toont de structuur van een tabel, inclusief de kolomfamilies en of deze momenteel is ingeschakeld:
hbase> describe 'guru99'
Het commando `exists` controleert of een tabel aanwezig is, en `is_enabled` geeft aan of de tabel schrijfbewerkingen kan accepteren:
hbase> exists 'guru99' hbase> is_enabled 'guru99'
Deze alleen-lezen controles kunnen op elk moment veilig worden uitgevoerd. Ze vormen de snelste manier om te bevestigen dat een tabel correct is aangemaakt en om de kolomfamilies te controleren voordat gegevens worden geladen.
Een HBase-tabel wijzigen
Het schema van een HBase-tabel is na aanmaak niet vastgelegd. Het `alter`-commando wijzigt de kolomfamilies en tabelspecifieke attributen van een tabel zonder deze opnieuw aan te maken. Afhankelijk van uw HBase-versie moet u de tabel mogelijk eerst uitschakelen, vervolgens het `alter`-commando uitvoeren en de tabel daarna weer inschakelen.
Om een nieuwe kolomfamilie toe te voegen aan de tabel “guru99”:
hbase> alter 'guru99', {NAME => 'contact'}
Om in te stellen hoeveel versies een kolomfamilie bewaart:
hbase> alter 'guru99', NAME => 'education', VERSIONS => 5
Om een kolomfamilie uit de tabel te verwijderen:
hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}
U kunt ook tabelspecifieke attributen wijzigen. U kunt de tabel bijvoorbeeld als alleen-lezen markeren of de maximale grootte van het regiobestand instellen op 128 MB.
hbase> alter 'guru99', READONLY hbase> alter 'guru99', MAX_FILESIZE => '134217728'
Omdat `alter` het schema herschrijft, moet u wijzigingen zorgvuldig plannen op een productietabel en het resultaat daarna bevestigen met `describe`.
HBase-tabellen uitschakelen, inschakelen en verwijderen
Om een tabel te verwijderen of bepaalde wijzigingen aan te brengen, moet je deze in HBase eerst uitschakelen. Door de tabel uit te schakelen, wordt deze offline gezet, zodat geen enkele client er meer in kan lezen of schrijven. Dit maakt structurele wijzigingen veilig.
Een tabel uitschakelen en de status ervan controleren met is_disabled:
hbase> disable 'guru99' hbase> is_disabled 'guru99'
Schakel de tabel weer in om het lezen en schrijven te hervatten:
hbase> enable 'guru99'
Een tabel moet worden uitgeschakeld voordat deze kan worden verwijderd. Verwijderenping Verwijdert de tabel en alle bijbehorende gegevens permanent, dus gebruik deze functie met de nodige voorzichtigheid:
hbase> disable 'guru99' hbase> drop 'guru99'
Om meerdere tabellen tegelijk te verwijderen, verwijdert drop_all elke tabel waarvan de naam overeenkomt met een reguliere expressie. De commando's create, alter, disable, enable en drop dekken samen de volledige levenscyclus van een tabel. gegevensverwerking in HBase-tabellen.







