HBase Hozzon létre táblázatot ezzel Java API és Shell példa

⚡ Okos összefoglaló

A HBase táblázatokban tárolja az adatokat, és ezeket a táblázatokat kétféleképpen hozhatja létre és kezelheti: a Java API HTable-lelDescriptvagy és a HBaseAdmin segítségével, vagy közvetlenül a HBase shellben a create parancs használatával.

  • Java API-k: Táblázatok létrehozása kódban a HTable segítségévelDescriptvagy, HColumnDescriptvagy, és a HBaseAdmin.
  • 🐚 Héj létrehozása: A create parancs egy névből és egy vagy több oszlopcsaládból épít fel egy táblázatot.
  • 🧬 Oszlopcsaládok: Minden táblázathoz legalább egy oszlopcsalád szükséges, amelyet a táblázat létrehozásakor kell meghatározni.
  • 🔧 Táblázatok módosítása: Az alter parancs oszlopcsaládokat ad hozzá, VERSIONS értékeket állít be, vagy módosítja a tábla hatókörének attribútumait.
  • 🗑️ Táblázat életciklusa: A táblázat módosítása vagy törlése előtt tiltsa le, majd engedélyezze újra az írás folytatásához.
  • 🤖 MI segítség: A mesterséges intelligencia asszisztensek létrehozási, módosítási és elvetési parancsokat készítenek, valamint felülvizsgálják az oszlopcsaládok tervét.

HBase tábla létrehozása a következővel: Java API és shell parancs példa

Hogyan hozhat létre táblázatot a HBase-ben Java API

A HBase-ben kétféleképpen hozhatók létre táblák: Java API-n és a HBase shell-en keresztül. Ez a szakasz a következőket tárgyalja: Java API, amely lehetővé teszi az alkalmazások számára, hogy táblázatokat hozzanak létre és adatokat töltsenek be programozottan egy nagyobb feladat részeként.

Keresztül Java API segítségével táblákat hozhatunk létre a HBase-ben, és adatokat is betölthetünk táblákba Java kódolás. A két dolog, amit itt beállítottunk, a következő:

  • Kapcsolat létrehozása a HBase segítségével Java API.
  • <p></p> Eclipse mert Java kódolás, hibakeresés és tesztelés.

Az alábbiakban bemutatjuk a táblák létrehozásának lépéseit a HBase-ben keresztül Java API.

1. lépés) Hozzon létre a Java Projekt be Eclipse

Ebben a lépésben létrehozzuk a Java projekt in Eclipse a „HbaseConnection” nevű HBase-kapcsolathoz.

Az új Java Az alábbi projekt párbeszédpanel a „HbaseConnection” projekt beállítását mutatja:

Eclipse Újszerű Java Projekt párbeszédpanel, amely létrehozza a HbaseConnection projektet egy JavaSE-1.7 környezet

Ha megnézzük a fenti képernyőképet:

  • Adja meg a projekt nevét ebben a mezőben. Esetünkben a projekt neve „HbaseConnection”.
  • Jelölje be ezt a négyzetet az alapértelmezett mentési helyhez. Itt a /home/hduser/work/HbaseConnection az elérési út.
  • Jelölje be a négyzetet a Java környezet itt. Ebben az esetben JavaAz SE-1.7 az Java kiadás.
  • Válaszd ki a fájl mentési helyét. Esetünkben a második lehetőséget választottuk: „Külön mappa létrehozása a forrásfájloknak és az osztályfájloknak”.
  • Kattintson a Befejezés gombra, amely létrehozza a „HbaseConnection” projektet a Eclipse és megnyitja a Eclipse honlapján.

2. lépés) Konfigurálja az építési útvonalat a Eclipse

A Eclipse A kezdőlapon kövesse az alábbi lépéseket az építési útvonal konfigurációjának megnyitásához:

Right click on project -> Select Build Path -> Configure build path

Az alábbi képernyőképen a jobb gombbal megjelenő menü látható, amely az építési útvonal konfigurációjának megnyitásához használható:

Eclipse projekt jobb klikk menü, válasszuk az Útvonal létrehozása, majd az Útvonal konfigurálása lehetőséget

A fenti képernyőképről:

  • Kattintson jobb gombbal egy projektre.
  • Válassza az Útvonal létrehozása lehetőséget.
  • Válassza a Build Path konfigurálása lehetőséget.

A Configure Build Path (Buildi útvonal konfigurálása) gombra kattintás után megnyílik egy másik ablak, amely az alábbi képernyőképen látható. A Libraries (Könyvtárak) lapon adhatók hozzá a HBase és a Hadoop JAR fájlok a projekthez:

Eclipse Java Útvonalkönyvtárak létrehozása fül külső HBase és Hadoop JAR fájlok hozzáadása

Ebben a lépésben hozzáadjuk a releváns HBase JAR fájlokat a Java projekt, ahogy a képernyőképen is látható.

  • Fontos hozzáadandó JAR fájlok: hbase-0.94.8.jar és hadoop-core-1.1.2.jar.
  • Gyere át a Könyvtárak fülre.
  • Kattintson a Külső JAR fájlok hozzáadása lehetőségre.
  • Válassza ki a szükséges fontos JAR fájlokat.
  • Nyomja meg a Befejezés gombot a fájlok hozzáadásához a „forrás” fájlhoz. Java projekt a Könyvtárak alatt.

A JAR fájlok hozzáadása után azok a projekt „src” mappájában jelennek meg, az alábbiak szerint:

Eclipse projektböngésző, amely a projekt forráskódjában hozzáadott HBase és Hadoop JAR fájlokat mutatja

A projekthez tartozó összes JAR fájl most már használatra kész a Hadoop ökoszisztémában.

3. lépés: HBase kapcsolat létrehozása

Ebben a lépésben a HBaseConnection.java használatával létrejön a HBase kapcsolat a következőn keresztül: Java kódolás.

A Eclipse felső menü, hajtsa végre a Java programot az alábbiak szerint: Futtatás -> Futtatás másként -> Java Alkalmazás. Az alábbi menü az elindított programot mutatja:

Eclipse Futtatás másként Java A HBaseConnection programot indító alkalmazásmenü

  • Válassza a Futtatás lehetőséget.
  • Futtatás másként kiválasztása Java Alkalmazás.
  • Ez a kód kapcsolatot létesít a HBase-szel a következőn keresztül: Java API.
  • A kód futtatása után a HBase-ben létrejön a „guru99” tábla két oszlopcsaláddal, „oktatás” és „projektek” néven. Jelenleg csak az üres séma jön létre a HBase-ben.

Az alábbi kódrészlet kiemeli a HTable-tDescriptvagy és az addFamily hívásokat, amelyek felépítik a tábla sémáját:

Java kód HTable használatávalDescriptvagy és az addFamily paranccsal definiálható a guru99 tábla az education és projects oszlopcsaládokkal.

A fenti képernyőkép alapján a következő funkciókat hajtjuk végre:

  • HTable használataDescriptvagy létrehozhatjuk a „guru99” táblát a HBase-ben.
  • Az addFamily metódus használatával hozzáadjuk az „oktatás” és a „projektek” oszlopcsaládokat a „guru99” táblához.

Az alábbi kód kapcsolatot létesít a HBase-szel, és létrehozza a „guru99” táblát két oszlopcsaláddal. Helyezze el ezt a kódot a HBaseConnection.java dokumentum alatt:

// 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......");
    }
}

Ez a kötelező kód, amit a HBaseConnection.java fájlba kell helyezned a futtatás előtt. Java program.

A program futtatása után kapcsolatot létesít a HBase-zel, és létrehoz egy oszlopnevekkel ellátott táblázatot.

  • A tábla neve „guru99”.
  • Az oszlopcsaládok az „oktatás” és a „projektek”.

4. lépés) Ellenőrizze a létrehozott táblát a HBase-ben

A HBase-ben a „list” parancs segítségével ellenőrizhetjük, hogy a „guru99” tábla két oszlopcsaláddal jött-e létre. A „list” parancs információt nyújt a HBase-ben létrehozott összes tábláról.

A list parancs futtatása a HBase shellben megerősíti az új táblát, az alábbiak szerint:

A HBase shell list parancs kimenete, amelyen látható a guru99 tábla létrehozása.

  • Code a HBase shellben a „list” parancs végrehajtásával ellenőrizhető.
  • Ha lefuttatjuk a „list” parancsot, az megjeleníti a HBase-ben létrehozott táblázatot. Esetünkben a „guru99” tábla létrehozását láthatjuk.

HBase Hozzon létre táblázatot a Shell segítségével

Mellett Java API-n keresztül közvetlenül a HBase shellből hozhat létre táblázatot, ami a leggyorsabb módja a gyors tesztekhez szükséges táblázatok beállításának. A HBase-ben a shell használatával létrehozandó táblázat szintaxisa a következő:

Syntax: create <tablename>, <columnfamilyname>

Példa:-

hbase(main):001:0> create 'education' ,'guru99'
0 rows(s) in 0.312 seconds
=>Hbase::Table – education

A fenti példa bemutatja, hogyan hozhatunk létre egy táblázatot a HBase-ben az egyes oszlopcsaládok specifikációinak megfelelően megadott névvel. Ezen felül átadhatunk neki néhány tábla hatókörű attribútumot is.

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}

Itt a {NAME=>'Edu', VERSIONS=>…} blokk beállít egy „Edu” nevű oszlopcsaládot és a megőrzött cellaverziók számát. A nagy szám csak illusztráció; a gyakorlatban a VERSIONS egy kis érték, például 3 vagy 5.

HBase táblák listázása, leírása és ellenőrzése

Egy tábla létrehozása csak az első része a táblák kezelésének a HBase-ben. Miután a „guru99” tábla létezik, néhány általános parancs lehetővé teszi annak vizsgálatát és állapotának megerősítését, mielőtt adatokat olvasna, írna vagy módosítana. Mindegyiket futtathatja a HBase shell.

A list parancs a HBase összes felhasználói tábláját visszaadja:

hbase> list

A describe parancs egy tábla szerkezetét mutatja, beleértve az oszlopcsaládokat és azt, hogy jelenleg engedélyezve van-e:

hbase> describe 'guru99'

Az exists parancs ellenőrzi, hogy létezik-e tábla, és az is_enabled jelzi, hogy a tábla fogadhat-e írásokat:

hbase> exists 'guru99'
hbase> is_enabled 'guru99'

Ezek az írásvédett ellenőrzések bármikor biztonságosan futtathatók. Ezek a leggyorsabb módja annak, hogy megerősítsük, hogy egy tábla helyesen jött létre, és hogy az adatok betöltése előtt áttekintsük az oszlopcsaládjait.

HBase tábla módosítása

Egy HBase tábla sémája létrehozás után nem kerül javításra. Az alter parancs módosítja a tábla oszlopcsaládjait és tábla hatókör-attribútumait anélkül, hogy újra létrehozná azt. A HBase verziójától függően előfordulhat, hogy először le kell tiltania a táblát, majd futtatnia kell az alter parancsot, és újra engedélyeznie kell.

Új oszlopcsalád hozzáadása a „guru99” táblához:

hbase> alter 'guru99', {NAME => 'contact'}

Az oszlopcsaládok verziószámának beállításához:

hbase> alter 'guru99', NAME => 'education', VERSIONS => 5

Oszlopcsalád törlése a táblázatból:

hbase> alter 'guru99', {NAME => 'contact', METHOD => 'delete'}

A tábla hatókörének attribútumait is módosíthatja. Például írásvédettként jelölheti meg a táblát, vagy a maximális régiófájl-méretet 128 MB-ra állíthatja:

hbase> alter 'guru99', READONLY
hbase> alter 'guru99', MAX_FILESIZE => '134217728'

Mivel az alter átírja a sémát, a változtatásokat gondosan tervezze meg egy éles táblán, és az eredményt utólag erősítse meg a describe paranccsal.

HBase-táblák letiltása, engedélyezése és elvetése

Egy tábla eltávolításához vagy bizonyos módosítások alkalmazásához a HBase először le kell tiltani azt. A letiltás offline állapotba hozza a táblát, így egyetlen kliens sem tud olvasni vagy írni bele, ami biztonságossá teszi a strukturális módosításokat.

Tilts le egy táblát, és ellenőrizd az állapotát az is_disabled paranccsal:

hbase> disable 'guru99'
hbase> is_disabled 'guru99'

Engedélyezze újra a táblát az olvasások és írások folytatásához:

hbase> enable 'guru99'

Egy táblát le kell tiltani, mielőtt el lehetne dobni.ping véglegesen törli a táblázatot és az összes adatát, ezért körültekintően kell használni:

hbase> disable 'guru99'
hbase> drop 'guru99'

Több tábla egyidejű eltávolításához a drop_all parancs minden olyan táblát töröl, amelynek neve megegyezik egy reguláris kifejezéssel. A létrehozás, módosítás, letiltás, engedélyezés és eldobás együttesen lefedik a tábla teljes életciklusát. adatkezelés a HBase táblákban.

GYIK

A bevált gyakorlat szerint az oszlopcsaládok száma alacsony, ideális esetben egytől háromig terjed. A HBase egy régió összes családját kiüríti és tömöríti, így a további családok több fájl között osztják szét az adatokat, és lassítják az olvasást és írást. Ha lehetséges, csoportosítsd a kapcsolódó oszlopokat egyetlen családba.

Nem. Létrehozáskor csak oszlopcsaládokat kell definiálni. Az oszlopminősítők dinamikusak, és bármelyik sorhoz hozzáadhatók az adatok írásakor. Ez a séma-rugalmas kialakítás lehetővé teszi, hogy minden sor különböző oszlopokat tartalmazzon a táblázat előzetes módosítása nélkül.

Használd a csonkolt 'guru99' parancsot, ami letiltja a táblát, elveti, majd újra létrehozza ugyanazokkal az oszlopcsaládokkal. A séma változatlan marad, miközben minden sor eltávolításra kerül. Ez gyorsabb és tisztább, mint a sorok egyenkénti törlése.

A példa a HBaseAdmin és a HTable használatát használja.Descriptvagy mindkettő elavult a HBase 1.0 óta. A modern kód egy Admin objektumot kap egy ConnectionFactory-n keresztül egy Connection-ből, és a sémát a Table segítségével építi fel.DescriptorBuilder és ColumnFamilyDescriptorBuilder. A tábla létrehozásának logikája változatlan marad.

A VERSIONS paraméter beállítja, hogy egy oszlopcsalád az egyes cellák hány időbélyeggel ellátott verzióját tartsa meg. Az alapértelmezett érték 1. A régebbi verziók get vagy scan paranccsal történő kérése addig adja vissza az eredeti verziókat, amíg a megtartott verziók száma el nem éri a megadott értéket, ezután a tömörítés eltávolítja a legrégebbi cellákat.

A HBase nagyon nagy, ritka adathalmazokhoz alkalmas, amelyek gyors véletlenszerű olvasást és írást igényelnek a Hadoop és a HDFS tetején. Tipikus felhasználási területek közé tartoznak az idősoros adatok, az üzenetküldés és a valós idejű elemzés, ahol a táblázatok több milliárd sorra nőnek számos csomóponton keresztül.

A mesterséges intelligencia által fejlesztett kódolóasszisztensek és a nagy nyelvi modellek egyszerű nyelvi promptokból készítenek létrehozási, módosítási és eldobási parancsokat, elmagyarázzák az oszlopcsaládok felépítését, és megjelölik a kockázatos műveleteket, például az eldobást.ping egy táblázat. A gépi tanulás a hozzáférési mintákat is elemezheti, hogy jobb sor-kulcs és család elrendezéseket javasoljon, bár egy mérnöknek minden javaslatot ellenőriznie kell.

Igen. GitHub másodpilóta képes HBase shell parancsok generálására és Java kliens kód létrehozásához, módosításához és eldobásáhozping táblázatok egy rövid megjegyzésből. RevFuttatás előtt tekintse meg a kimenetét a helyes táblanév, oszlopcsaládok és az aktuális adminisztrátori API szempontjából.

Foglald össze ezt a bejegyzést a következőképpen: