HBase Looge tabel rakendusega Java API ja kesta näide

⚡ Nutikas kokkuvõte

HBase salvestab andmeid tabelitesse ja neid tabeleid saab luua ja hallata kahel viisil: Java API koos HTable'igaDescriptvõi ja HBaseAdmini abil või otse HBase'i kestas käsu create abil.

  • Java API-d: Loo tabeleid koodis HTable abilDescriptvõi H-veergDescriptvõi ja HBaseAdmin.
  • 🐚 Shelli loomine: Käsk create loob tabeli nime ja ühe või mitme veeruperekonna põhjal.
  • 🧬 Veergude perekonnad: Igal tabelil on vaja vähemalt ühte veeruperekonda, mis määratakse tabeli loomisel.
  • 🔧 Muuda tabeleid: Käsk alter lisab veeruperekondi, määrab VERSIONS või muudab tabeli ulatuse atribuute.
  • 🗑️ Tabeli elutsükkel: Enne tabeli muutmist või kustutamist keelake see ja seejärel lubage see uuesti, et kirjutamist jätkata.
  • 🤖 Tehisintellekti abi: Tehisintellekti assistendid koostavad loomise, muutmise ja kustutamise käske ning vaatavad üle veergude perekonna kujunduse.

HBase'i tabeli loomine koos Java API ja shelli käsu näide

Kuidas HBase'is tabelit luua Java API

HBase'is saab tabeleid luua kahel viisil: Java API ja HBase'i kesta kaudu. See jaotis käsitleb Java API, mis võimaldab rakendusel luua tabeleid ja laadida andmeid programmiliselt osana suuremast tööst.

Läbi Java API, saame luua HBase'is tabeleid ja laadida ka andmeid tabelitesse kasutades Java kodeerimine. Kaks asja, mille me siin seadistame, on:

  • Ühenduse loomine HBase'iga läbi Java API.
  • Kasutamine Eclipse eest Java kodeerimine, silumine ja testimine.

Järgmised sammud HBase kaudu tabelite loomiseks Java API.

Samm 1) Looge a Java Projekti sisse Eclipse

Selles etapis loome a Java projekt sisse Eclipse HBase-ühenduse jaoks nimega „HbaseConnection”.

Uus Java Allolev projektidialoog näitab seadistatavat projekti „HbaseConnection”:

Eclipse Uus Java Projektidialoog HbaseConnectioni projekti loomisel JavaSE-1.7 keskkond

Kui vaatame ülaltoodud ekraanipilti:

  • Sisesta sellesse kasti projekti nimi. Meie puhul on projekti nimi „HbaseConnection”.
  • Märkige see ruut, et määrata salvestuskoha vaikesäte. Siin on tee /home/hduser/work/HbaseConnection.
  • Märkige ruut selle jaoks, Java keskkond siin. Sel juhul JavaSE-1.7 on Java väljaanne.
  • Valige suvand, kuhu soovite faili salvestada. Meie puhul valisime teise suvandi „Looge lähtekoodide ja klassifailide jaoks eraldi kaust”.
  • Klõpsake nuppu Valmis, mis loob projekti „HbaseConnection” Eclipse ja avab Eclipse avalehele.

2. samm) Konfigureerige ehitustee Eclipse

Kohta Eclipse Avalehel järgige ehitustee konfiguratsiooni avamiseks neid samme:

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

Allolev ekraanipilt näitab paremklõpsu menüüd, mida kasutatakse ehitustee konfiguratsiooni avamiseks:

Eclipse projekti paremklõpsu menüü, valides Ehitustee ja seejärel Konfigureeri Ehitustee

Ülaltoodud ekraanipildilt:

  • Paremklõpsake projektil.
  • Valige Loomise tee.
  • Valige Konfigureeri ehitustee.

Pärast nupule „Konfigureeri ehitustee“ klõpsamist avaneb uus aken, nagu on näidatud alloleval ekraanipildil. Vahekaardil „Teekid“ lisatakse projektile HBase ja Hadoop JAR-failid:

Eclipse Java Vahekaart „Loo teekonnateekide loomine” lisab väliseid HBase'i ja Hadoopi JAR-faile

Selles etapis lisame asjakohased HBase JAR-failid Java projekt, nagu ekraanipildil näidatud.

  • Olulised lisatavad JAR-failid: hbase-0.94.8.jar ja hadoop-core-1.1.2.jar.
  • Tule vahekaardile Raamatukogud.
  • Vajutage valikut Lisa väliseid JAR-e.
  • Valige vajalikud olulised JAR-failid.
  • Nende failide lisamiseks kausta „src” vajutage nuppu „Valmis”. Java projekt raamatukogude all.

Pärast JAR-ide lisamist kuvatakse need projekti „src” asukohas, nagu allpool näidatud:

Eclipse projekti uurija, mis näitab projekti lähtekoodi all lisatud HBase'i ja Hadoopi JAR-faile

Kõik projekti alla kuuluvad JAR-failid on nüüd Hadoopi ökosüsteemis kasutamiseks valmis.

Samm 3) Looge HBase'i ühendus

Selles etapis luuakse HBaseConnection.java abil HBase-ühendus järgmise kaudu: Java kodeerimine.

Kohta Eclipse ülemises menüüs käivitage Java programmi, nagu allpool näidatud: Käivita -> Käivita nimega -> Java Rakendus. Allolev menüü näitab käivitatavat programmi:

Eclipse Käivita kui Java Rakenduse menüü, mis käivitab HBaseConnectioni programmi

  • Valige Käivita.
  • Valige Käivita nimega Java Taotlus
  • See kood loob ühenduse HBase'iga läbi Java API.
  • Pärast selle koodi käivitamist luuakse HBase'is tabel „guru99“, millel on kaks veeruperekonda nimega „haridus“ ja „projektid“. Praegu luuakse HBase'is ainult tühi skeem.

Allolev koodiväljavõte toob esile HTable'iDescriptvõi ja addFamily käsud, mis loovad tabeli skeemi:

Java kood HTable'i abilDescriptvõi ja addFamily, et defineerida guru99 tabel hariduse ja projektide veeruperekondadega

Ülaltoodud ekraanipildilt täidame järgmisi funktsioone:

  • HTable kasutamineDescriptvõi saame luua HBase'is tabeli „guru99”.
  • Kasutades meetodit addFamily, lisame tabelisse „guru99“ veeruperekondadena „haridus“ ja „projektid“.

Allolev kood loob ühenduse HBase'iga ja loob tabeli „guru99” kahe veeruperekonnaga. Aseta see kood HBaseConnection.java dokumendi alla:

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

See on kohustuslik kood, mille peate enne käsu käivitamist faili HBaseConnection.java lisama. Java programmi.

Pärast selle programmi käivitamist loob see ühenduse HBase'iga ja loob omakorda veerunimedega tabeli.

  • Tabeli nimi on “guru99”.
  • Veergude perekonnad on „haridus” ja „projektid”.

Samm 4) Kontrollige HBase'is loodud tabelit

Saame HBase'is kontrollida, kas tabel „guru99” on loodud kahe veeruperekonnaga, kasutades HBase'i kestarežiimi käsuga „list”. Käsk „list” annab teavet kõigi HBase'is loodud tabelite kohta.

HBase'i kestas loendi käsu käivitamine kinnitab uue tabeli, nagu allpool näidatud:

HBase'i shelliloendi käsu väljund, mis näitab guru99 tabeli loomist

  • Code HBase'i kesta kontrollimine käsu „list” käivitamisega.
  • Kui käivitame käsu „list“, kuvab see HBase'is loodud tabeli. Meie puhul näeme, et on loodud tabel „guru99“.

HBase Looge Shelliga tabel

Lisaks Java API abil saate tabeli luua otse HBase'i kestast, mis on kiireim viis tabeli seadistamiseks kiirtestide jaoks. HBase'is kesta abil tabeli loomise süntaks on järgmine:

Syntax: create <tablename>, <columnfamilyname>

Näide: -

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

Ülaltoodud näide selgitab, kuidas luua HBase'is tabel, mille nimi on antud iga veerupere spetsifikatsioonide kohaselt. Lisaks sellele saame sinna edastada ka mõned tabeli ulatuse atribuudid.

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

Siin määrab plokk {NAME=>'Edu', VERSIONS=>…} veerupere nimega „Edu“ ja säilitatavate lahtriversioonide arvu. Suur arv on vaid illustratiivne; praktikas on VERSIONS väike väärtus, näiteks 3 või 5.

HBase'i tabelite loetlemine, kirjeldamine ja kontrollimine

Tabeli loomine on vaid esimene osa tabelite haldamisest HBase'is. Kui tabel „guru99” on olemas, saate mõne üldise käsu abil seda enne andmete lugemist, kirjutamist või muutmist kontrollida ja selle olekut kinnitada. Saate neid kõiki käivitada HBase kest.

loendi käsk tagastab kõik HBase'i kasutajate tabelid:

hbase> list

Käsk describe näitab tabeli struktuuri, sealhulgas selle veergude perekondi ja seda, kas see on hetkel lubatud:

hbase> describe 'guru99'

Käsk „exists” kontrollib, kas tabel on olemas, ja „is_enabled” annab teada, kas tabel saab kirjutamiskõlbulikke kirjutusi vastu võtta:

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

Neid kirjutuskaitstud kontrolle on ohutu igal ajal käivitada. Need on kiireim viis tabeli õigesti loomise kinnitamiseks ja selle veeruperekondade ülevaatamiseks enne andmete laadimist.

HBase'i tabeli muutmine

HBase'i tabeli skeemi ei parandata pärast loomist. Käsk alter muudab tabeli veeruperekondi ja tabeli ulatuse atribuute seda uuesti loomata. Sõltuvalt teie HBase'i versioonist peate võib-olla esmalt tabeli keelama, seejärel käivitama käsu alter ja selle uuesti lubama.

Uue veerupere lisamiseks tabelisse „guru99”:

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

Veergude perekonna säilitatavate versioonide arvu määramiseks toimige järgmiselt.

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

Veergude perekonna kustutamiseks tabelist:

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

Samuti saate muuta tabeli ulatuse atribuute. Näiteks saate märkida tabeli kirjutuskaitstud või määrata piirkonnafaili maksimaalseks suuruseks 128 MB:

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

Kuna käsk „alter“ kirjutab skeemi ümber, planeeri muudatused hoolikalt tootmistabelil ja kinnita tulemus hiljem käsuga „describe“.

HBase'i tabelite keelamine, lubamine ja eemaldamine

Tabeli eemaldamiseks või teatud muudatuste rakendamiseks nõuab HBase, et te selle kõigepealt keelaksite. Keelamine lülitab tabeli võrguühenduseta olekusse, nii et ükski klient ei saa seda lugeda ega sinna kirjutada, mis muudab struktuurimuudatused turvaliseks.

Keela tabel ja kontrolli selle olekut is_disabled abil:

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

Lugemiste ja kirjutamiste jätkamiseks lubage tabel uuesti:

hbase> enable 'guru99'

Tabeli kustutamiseks tuleb see keelata.ping kustutab tabeli ja kõik selle andmed jäädavalt, seega kasutage seda ettevaatlikult:

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

Mitme tabeli korraga eemaldamiseks kustutab drop_all kõik tabelid, mille nimi vastab regulaaravaldisele. Koos hõlmavad loomine, muutmine, keelamine, lubamine ja eemaldamine tabeli kogu elutsüklit. andmete haldamine HBase'i tabelites.

KKK

Parim tava hoiab veergude perekondade arvu madalana, ideaaljuhul ühest kolmeni. HBase koondab ja tihendab kõik piirkonna perekonnad kokku, seega hajutavad lisapered andmeid rohkemate failide vahel ning aeglustavad lugemist ja kirjutamist. Võimaluse korral grupeerige seotud veerud ühte perekonda.

Ei. Loomise ajal defineeritakse ainult veeruperekonnad. Veergude täpsustajad on dünaamilised ja neid saab andmete kirjutamisel lisada mis tahes reale. See skeemipaindlik disain võimaldab igal real olla erinevad veerud ilma tabelit eelnevalt muutmata.

Kasutage käsku 'guru99' kärpimine, mis keelab tabeli, kustutab selle ja loob uuesti samade veeruperekondadega. Skeem jääb puutumata, kuni kõik read eemaldatakse. See on kiirem ja puhtam kui ridade ükshaaval kustutamine.

Näites kasutatakse HBaseAdminit ja HTable'iDescriptvõi mõlemad on HBase 1.0-st alates aegunud. Kaasaegne kood hangib ConnectionFactory kaudu Connectionist Admin objekti ja loob skeemi tabeli abilDescriptorBuilder ja ColumnFamilyDescriptvõiBuilder. Tabeli loomise loogika jääb samaks.

VERSIONS määrab, mitu ajatempliga varustatud versiooni igast lahtrist veerupere säilitab. Vaikimisi on see 1. Vanemate versioonide taotlemine käsuga get või scan tagastab need seni, kuni säilitatud versioonide arv on ületatud, mille järel tihendamine eemaldab vanimad lahtrid.

HBase sobib väga suurtele ja hõredatele andmekogumitele, mis vajavad Hadoopi ja HDFS-i peal kiiret juhuslikku lugemist ja kirjutamist. Tüüpilised kasutusalad hõlmavad aegridade andmeid, sõnumivahetust ja reaalajas analüütikat, kus tabelid kasvavad miljardite ridadeni paljudes sõlmedes.

Tehisintellekti kodeerimisassistendid ja suured keelemudelid koostavad loomise, muutmise ja kustutamise käske lihtkeelsete käskude abil, selgitavad veergude perekonna kujundust ja märgistavad riskantseid toiminguid, näiteks kustutamist.ping tabel. Masinõpe saab analüüsida ka juurdepääsumustreid, et soovitada paremaid rea-võtme ja perekonna paigutusi, kuigi insener peaks iga soovitust kontrollima.

Jah. GitHubi koopia oskab genereerida HBase'i shelli käske ja Java kliendikood loomiseks, muutmiseks ja kustutamiseksping tabelid lühikesest kommentaarist. RevEnne käivitamist vaadake selle väljundit õige tabeli nime, veeruperekondade ja praeguse administraatori API suhtes.

Võta see postitus kokku järgmiselt: