HBase Stvorite tablicu s Java Primjer API-ja i ljuske

โšก Pametni saลพetak

HBase pohranjuje podatke u tablice, a te tablice moลพete kreirati i njima upravljati na dva naฤina: putem Java API s HTableomDescriptili i HBaseAdmin, ili izravno u HBase ljusci pomoฤ‡u naredbe create.

  • โ˜• Java Apis: Izradite tablice u kodu pomoฤ‡u HTableaDescriptili, HColumnDescriptili i HBaseAdmin.
  • ๐Ÿš Izrada ljuske: Naredba create gradi tablicu od imena i jedne ili viลกe obitelji stupaca.
  • ๐Ÿงฌ Obitelji stupaca: Svaka tablica treba barem jednu obitelj stupaca, definiranu prilikom kreiranja tablice.
  • ๐Ÿ”ง Promijeni tablice: Naredba alter dodaje obitelji stupaca, postavlja VERZIJE ili mijenja atribute opsega tablice.
  • ๐Ÿ—‘๏ธ ลฝivotni ciklus tablice: Onemoguฤ‡ite tablicu prije nego ลกto je izmijenite ili uklonite, a zatim je ponovno omoguฤ‡ite da biste nastavili s pisanjem.
  • ๐Ÿค– Pomoฤ‡ umjetne inteligencije: AI asistenti izraฤ‘uju naredbe za stvaranje, promjenu i uklanjanje te pregledavaju dizajn obitelji stupaca.

HBase kreira tablicu s Java Primjer API-ja i shell naredbe

Kako stvoriti tablicu u HBase s Java API

U HBaseu se tablice mogu kreirati na dva naฤina: putem Java API i putem HBase ljuske. Ovaj odjeljak pokriva Java API, koji aplikaciji omoguฤ‡uje stvaranje tablica i programsko uฤitavanje podataka kao dio veฤ‡eg posla.

Kroz Java API, moลพemo kreirati tablice u HBase-u i takoฤ‘er uฤitati podatke u tablice pomoฤ‡u Java kodiranje. Dvije stvari koje smo ovdje postavili su:

  • Uspostavljanje veze s HBase putem Java API-ja.
  • Koriลกtenje Eclipse za Java kodiranje, otklanjanje pogreลกaka i testiranje.

Slijede koraci za stvaranje tablica u HBase-u Java API-ja.

Korak 1) Stvorite a Java Projekt u Eclipse

U ovom koraku ฤ‡emo stvoriti a Java projekt u Eclipse za HBase vezu, pod nazivom โ€žHbaseConnectionโ€œ.

Novi Java Dijalog projekta u nastavku prikazuje postavljanje projekta "HbaseConnection":

Eclipse Novo Java Dijalog projekta koji stvara HbaseConnection projekt s JavaSE-1.7 okruลพenje

Ako pogledamo gornju snimku zaslona:

  • U ovaj okvir unesite naziv projekta. U naลกem sluฤaju, naziv projekta je โ€žHbaseConnectionโ€œ.
  • Oznaฤite ovaj okvir za spremanje zadane lokacije. Ovdje je put /home/hduser/work/HbaseConnection.
  • Oznaฤite okvir za Java okruลพenje ovdje. U ovom sluฤaju JavaSE-1.7 je Java izdanje.
  • Odaberite opciju gdje ลพelite spremiti datoteku. U naลกem sluฤaju odabrali smo drugu opciju, "Stvori zasebnu mapu za izvore i datoteke razreda".
  • Kliknite gumb Zavrลกi, ฤime se stvara projekt โ€žHbaseConnectionโ€œ u Eclipse i otvara Eclipse Poฤetna stranica.

Korak 2) Konfigurirajte putanju izgradnje u Eclipse

Na Eclipse Na poฤetnoj stranici slijedite ove korake za otvaranje konfiguracije puta izgradnje:

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

Snimka zaslona u nastavku prikazuje izbornik desnim klikom koji se koristi za otvaranje konfiguracije putanje izgradnje:

Eclipse izbornik projekta koji se odabire desnim klikom miลกa, a zatim odabir Putanja izgradnje, a zatim Konfiguriraj Putanje izgradnje

Iz gornje snimke zaslona:

  • Desnim klikom miลกa odaberite projekt.
  • Odaberite Put izgradnje.
  • Odaberite Konfiguriraj putanju izgradnje.

Nakon klika na Konfiguriraj putanju izgradnje, otvara se joลก jedan prozor, prikazan na snimci zaslona u nastavku. Kartica Biblioteke je mjesto gdje se HBase i Hadoop JAR datoteke dodaju u projekt:

Eclipse Java Kartica Izgradnja biblioteka putanja dodaje vanjske HBase i Hadoop JAR datoteke

U ovom koraku dodajemo relevantne HBase JAR-ove u Java projekt kao ลกto je prikazano na snimci zaslona.

  • Vaลพne JAR datoteke koje treba dodati: hbase-0.94.8.jar i hadoop-core-1.1.2.jar.
  • Doฤ‘ite na karticu Knjiลพnice.
  • Pritisnite opciju Dodaj vanjske JAR-ove.
  • Odaberite potrebne vaลพne JAR-ove.
  • Pritisnite gumb Zavrลกi da biste dodali ove datoteke u "src" mape Java projekt u sklopu Knjiลพnica.

Nakon ลกto su JAR-ovi dodani, pojavljuju se pod lokacijom projekta "src" kao ลกto je prikazano u nastavku:

Eclipse preglednik projekata koji prikazuje dodane HBase i Hadoop JAR datoteke pod izvornim kodom projekta

Sve JAR datoteke koje spadaju u projekt sada su spremne za koriลกtenje s Hadoop ekosustavom.

Korak 3) Uspostavite HBase vezu

U ovom koraku, koriลกtenjem HBaseConnection.java, uspostavlja se HBase veza putem Java kodiranje.

Na Eclipse gornjem izborniku, izvrลกite Java program kao ลกto je prikazano dolje: Pokreni -> Pokreni kao -> Java Aplikacija. Izbornik u nastavku prikazuje program koji se pokreฤ‡e:

Eclipse Trฤati kao Java Izbornik aplikacije koji pokreฤ‡e program HBaseConnection

  • Odaberite Pokreni.
  • Odaberite Pokreni kao Java Primjena.
  • Ovaj kod uspostavlja vezu s HBaseom putem Java API-ja.
  • Nakon pokretanja ovog koda, tablica โ€žguru99โ€œ se kreira u HBaseu s dvije obitelji stupaca pod nazivom โ€žeducationโ€œ i โ€žprojectsโ€œ. Trenutno se u HBaseu kreira samo prazna shema.

Isjeฤak koda u nastavku istiฤe HTableDescriptili i pozive funkcije addFamily koji grade shemu tablice:

Java kod koji koristi HTableDescriptili i addFamily za definiranje tablice guru99 s obiteljima stupaca education i projects

Iz gornje snimke zaslona vidimo da izvrลกavamo sljedeฤ‡e funkcije:

  • Koriลกtenje HTableDescriptili moลพemo kreirati tablicu โ€žguru99โ€œ u HBaseu.
  • Pomoฤ‡u metode addFamily dodajemo "education" i "projects" kao obitelji stupaca u tablicu "guru99".

Donji kod ฤ‡e uspostaviti vezu s HBaseom i stvoriti tablicu โ€žguru99โ€œ s dvije obitelji stupaca. Postavite ovaj kod ispod dokumenta 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......");
    }
}

Ovo je potreban kod koji morate smjestiti u HBaseConnection.java prije nego ลกto pokrenete Java Program.

Nakon pokretanja ovog programa, on uspostavlja vezu s HBaseom i zauzvrat stvara tablicu s nazivima stupaca.

  • Naziv tablice je โ€žguru99โ€œ.
  • Obitelji stupaca su โ€žobrazovanjeโ€œ i โ€žprojektiโ€œ.

Korak 4) Provjerite stvorenu tablicu u HBase-u

Moลพemo provjeriti je li tablica โ€žguru99โ€œ kreirana s dvije obitelji stupaca u HBaseu koriลกtenjem HBase shell naฤina rada s naredbom โ€žlistโ€œ. Naredba โ€žlistโ€œ daje informacije o svim tablicama kreiranim u HBaseu.

Pokretanje naredbe list u HBase ljusci potvrฤ‘uje novu tablicu, kao ลกto je prikazano u nastavku:

Izlaz naredbe HBase shell list koji prikazuje da je tablica guru99 kreirana

  • Code provjera u HBase ljusci izvrลกavanjem naredbe "list".
  • Ako pokrenemo naredbu โ€žlistโ€œ, prikazuje se tablica kreirana u HBaseu. U naลกem sluฤaju moลพemo vidjeti da je kreirana tablica โ€žguru99โ€œ.

HBase Stvaranje tablice s ljuskom

Osim Java API-jem moลพete kreirati tablicu izravno iz HBase ljuske, ลกto je najbrลพi naฤin za postavljanje tablice za brze testove. Sintaksa za kreiranje tablice u HBaseu pomoฤ‡u ljuske je:

Syntax: create <tablename>, <columnfamilyname>

Primjer:-

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

Gornji primjer objaลกnjava kako stvoriti tablicu u HBaseu s navedenim nazivom danim prema specifikacijama za svaku obitelj stupaca. Osim toga, u nju moลพemo proslijediti i neke atribute opsega tablice.

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

Ovdje blok {NAME=>'Edu', VERSIONS=>โ€ฆ} postavlja obitelj stupaca pod nazivom โ€žEduโ€œ i broj verzija ฤ‡elija koje se ฤuvaju. Veliki broj je samo ilustrativan; u praksi, VERSIONS je mala vrijednost poput 3 ili 5.

Popis, opis i provjera HBase tablica

Stvaranje tablice samo je prvi dio rukovanja tablicama u HBaseu. Nakon ลกto tablica "guru99" postoji, nekoliko opฤ‡ih naredbi omoguฤ‡uje vam da je pregledate i potvrdite njezino stanje prije nego ลกto ฤitate, piลกete ili mijenjate podatke. Sve ih moลพete pokrenuti iz HBase ljuska.

Naredba list vraฤ‡a svaku korisniฤku tablicu u HBaseu:

hbase> list

Naredba describe prikazuje strukturu tablice, ukljuฤujuฤ‡i njezine obitelji stupaca i je li trenutno omoguฤ‡ena:

hbase> describe 'guru99'

Naredba exists provjerava je li tablica prisutna, a is_enabled izvjeลกtava moลพe li tablica prihvatiti upisivanje:

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

Ove provjere samo za ฤitanje mogu se sigurno pokrenuti u bilo kojem trenutku. One su najbrลพi naฤin da se potvrdi da je tablica ispravno kreirana i da se pregledaju njezine obitelji stupaca prije uฤitavanja podataka.

Promjena HBase tablice

Shema HBase tablice nije fiksna nakon stvaranja. Naredba alter mijenja obitelji stupaca tablice i atribute opsega tablice bez ponovnog stvaranja. Ovisno o verziji HBasea, moลพda ฤ‡ete prvo morati onemoguฤ‡iti tablicu, a zatim pokrenuti naredbu alter i ponovno je omoguฤ‡iti.

Za dodavanje nove obitelji stupaca u tablicu โ€žguru99โ€:

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

Za postavljanje koliko verzija obitelj stupaca ฤuva:

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

Za brisanje obitelji stupaca iz tablice:

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

Takoฤ‘er moลพete promijeniti atribute opsega tablice. Na primjer, oznaฤite tablicu samo za ฤitanje ili postavite maksimalnu veliฤinu datoteke regije na 128 MB:

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

Buduฤ‡i da naredba alter prepisuje shemu, paลพljivo planirajte promjene na produkcijskoj tablici i naknadno potvrdite rezultat naredbom describe.

Onemoguฤ‡i, omoguฤ‡i i ukloni HBase tablice

Za uklanjanje tablice ili primjenu odreฤ‘enih promjena, HBase zahtijeva da je prvo onemoguฤ‡ite. Onemoguฤ‡avanjem se tablica postavlja izvan mreลพe tako da nijedan klijent ne moลพe ฤitati ili pisati u nju, ลกto strukturne promjene ฤini sigurnima.

Onemoguฤ‡ite tablicu i provjerite njezino stanje pomoฤ‡u is_disabled:

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

Ponovno omoguฤ‡ite tablicu za nastavak ฤitanja i pisanja:

hbase> enable 'guru99'

Tablica mora biti onemoguฤ‡ena prije nego ลกto se moลพe ukloniti. Ispustiping trajno briลกe tablicu i sve njezine podatke, stoga je koristite s oprezom:

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

Za uklanjanje nekoliko tablica odjednom, drop_all briลกe svaku tablicu ฤije se ime podudara s regularnim izrazom. Zajedno, kreiranje, mijenjanje, onemoguฤ‡avanje, omoguฤ‡avanje i brisanje pokrivaju cijeli ลพivotni ciklus rukovanje podacima u HBase tablicama.

Pitanja i odgovori

Najbolja praksa je odrลพavati broj obitelji stupaca niskim, idealno jednu do tri. HBase objedinjuje i saลพima sve obitelji regije zajedno, tako da dodatne obitelji rasporeฤ‘uju podatke na viลกe datoteka i usporavaju ฤitanje i pisanje. Grupirajte povezane stupce u jednu obitelj kad god je to moguฤ‡e.

Ne. Prilikom izrade definirate samo obitelji stupaca. Kvalifikatori stupaca su dinamiฤni i mogu se dodati u bilo koji redak prilikom pisanja podataka. Ovaj dizajn fleksibilan u pogledu sheme omoguฤ‡uje da svaki redak sadrลพi razliฤite stupce bez prethodne izmjene tablice.

Koristite skraฤ‡ivanje 'guru99', ลกto onemoguฤ‡uje tablicu, briลกe je i ponovno je stvara s istim obiteljima stupaca. Shema ostaje netaknuta dok se svaki redak uklanja. To je brลพe i ฤiลกฤ‡e od brisanja redaka jednog po jednog.

Primjer koristi HBaseAdmin i HTableDescriptili, oboje zastarjelo od HBase 1.0. Moderni kod dobiva Admin objekt iz Connectiona putem ConnectionFactoryja i gradi shemu s TableomDescriptorBuilder i ColumnFamilyDescriptorBuilder. Logika stvaranja tablice ostaje ista.

VERZIJE postavlja koliko vremenski oznaฤenih verzija svake ฤ‡elije obitelj stupaca ฤuva. Zadana vrijednost je 1. Zahtjev za starije verzije pomoฤ‡u naredbi get ili scan vraฤ‡a ih dok se ne premaลกi zadrลพani broj, nakon ฤega saลพimanje uklanja najstarije ฤ‡elije.

HBase odgovara vrlo velikim, rijetkim skupovima podataka kojima je potrebno brzo nasumiฤno ฤitanje i pisanje preko Hadoop-a i HDFS-a. Tipiฤne upotrebe ukljuฤuju podatke vremenskih serija, razmjenu poruka i analitiku u stvarnom vremenu gdje tablice rastu do milijardi redaka na mnogim ฤvorovima.

Pomoฤ‡nici za kodiranje umjetne inteligencije i modeli velikih jezika izraฤ‘uju naredbe za stvaranje, promjenu i ispuลกtanje iz jednostavnih upita, objaลกnjavaju dizajn obitelji stupaca i oznaฤavaju riziฤne operacije poput ispuลกtanjaping tablicu. Strojno uฤenje takoฤ‘er moลพe analizirati obrasce pristupa kako bi preporuฤilo bolje rasporede kljuฤeva redaka i obitelji, iako bi inลพenjer trebao provjeriti svaki prijedlog.

Da. GitHub kopilot moลพe generirati HBase shell naredbe i Java klijentski kod za stvaranje, mijenjanje i brisanjeping tablice iz kratkog komentara. RevPrije pokretanja pogledajte njegov izlaz za ispravan naziv tablice, obitelji stupaca i trenutni Admin API.

Saลพmite ovu objavu uz: