HBase Creați tabel cu Java Exemplu API și Shell

⚡ Rezumat inteligent

HBase stochează datele în tabele, iar aceste tabele pot fi create și gestionate în două moduri: prin intermediul Java API cu HTableDescriptsau și HBaseAdmin, sau direct în shell-ul HBase folosind comanda create.

  • Java API-uri: Creați tabele în cod cu HTableDescriptsau, HColumnDescriptsau și HBaseAdmin.
  • 🐚 Creare shell: Comanda create construiește un tabel dintr-un nume și una sau mai multe familii de coloane.
  • 🧬 Familii de coloane: Fiecare tabel necesită cel puțin o familie de coloane, definită la crearea tabelului.
  • 🔧 Modificați tabelele: Comanda alter adaugă familii de coloane, setează VERSIONS sau modifică atributele tabelului.
  • 🗑️ Ciclul de viață al tabelului: Dezactivați un tabel înainte de a-l modifica sau elimina, apoi activați-l din nou pentru a relua scrierile.
  • 🤖 Asistență AI: Asistenții inteligenți artificiali elaborează comenzi de creare, modificare și eliminare și revizuiesc designul familiei de coloane.

HBase creează tabel cu Java Exemplu de comandă API și shell

Cum se creează un tabel în HBase cu Java API

În HBase, tabelele pot fi create în două moduri: prin intermediul Java API și prin shell-ul HBase. Această secțiune acoperă Java API, care permite unei aplicații să creeze tabele și să încarce date programatic ca parte a unui job mai amplu.

Prin Java API, putem crea tabele în HBase și, de asemenea, putem încărca date în tabele folosind Java codare. Cele două lucruri pe care le-am configurat aici sunt:

  • Stabilirea unei conexiuni cu HBase prin Java API-ul.
  • Utilizarea Eclipse pentru Java codare, depanare și testare.

Următorii sunt pașii pentru a crea tabele în HBase prin Java API-ul.

Pasul 1) Creați un Java Proiect în Eclipse

În acest pas, vom crea un Java proiect in Eclipse pentru conexiunea HBase, numită „HbaseConnection”.

Noua Java Caseta de dialog a proiectului de mai jos arată configurarea proiectului „HbaseConnection”:

Eclipse Nou Java Dialogul de proiect care creează proiectul HbaseConnection cu un JavaMediul SE-1.7

Dacă observăm captura de ecran de mai sus:

  • Scrieți numele proiectului în această casetă. În cazul nostru, numele proiectului este „HbaseConnection”.
  • Bifați această casetă pentru locația implicită în care va fi salvată. Aici /home/hduser/work/HbaseConnection este calea.
  • Bifați caseta pentru Java mediu aici. În acest caz JavaSE-1.7 este Java Ediție.
  • Alegeți opțiunea pentru locul în care doriți să salvați fișierul. În cazul nostru, am selectat a doua opțiune, „Creați un folder separat pentru fișierele sursă și de clasă”.
  • Faceți clic pe butonul Finish, care creează proiectul „HbaseConnection” în Eclipse și deschide Eclipse pagina de acasă.

Pasul 2) Configurați calea de compilare în Eclipse

Pe Eclipse pagina principală, urmați acești pași pentru a deschide configurația căii de compilare:

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

Captura de ecran de mai jos prezintă meniul care se deschide cu clic dreapta pentru a deschide configurația căii de compilare:

Eclipse meniul proiectului, clic dreapta, selectând Build Path, apoi Configure Build Path

Din captura de ecran de mai sus:

  • Faceți clic dreapta pe un proiect.
  • Selectați Build Cale.
  • Selectați Configurați calea de compilare.

După ce faceți clic pe Configure Build Path (Configurare cale de compilare), se deschide o altă fereastră, așa cum se arată în captura de ecran de mai jos. Fila Libraries (Biblioteci) este locul unde fișierele JAR HBase și Hadoop sunt adăugate la proiect:

Eclipse Java Fila Build Path Libraries (Creați biblioteci de căi) adăugând fișiere JAR HBase și Hadoop externe

În acest pas, adăugăm fișierele JAR HBase relevante în Java proiect așa cum se arată în captură de ecran.

  • Fișiere JAR importante care trebuie adăugate: hbase-0.94.8.jar și hadoop-core-1.1.2.jar.
  • Accesați secțiunea Biblioteci.
  • Apăsați opțiunea Adăugare JAR-uri externe.
  • Selectați fișierele JAR importante necesare.
  • Apăsați butonul Finish pentru a adăuga aceste fișiere la „src”-ul fișierului. Java proiect în cadrul Bibliotecilor.

După ce fișierele JAR sunt adăugate, acestea apar sub locația „src” a proiectului, așa cum se arată mai jos:

Eclipse exploratorul de proiecte care afișează fișierele JAR HBase și Hadoop adăugate sub sursa proiectului

Toate fișierele JAR care intră sub incidența proiectului sunt acum gata de utilizare în ecosistemul Hadoop.

Pasul 3) Stabiliți conexiunea HBase

În acest pas, folosind HBaseConnection.java, conexiunea HBase este stabilită prin Java codare.

Pe Eclipse meniul de sus, executați a Java program așa cum se arată mai jos: Run -> Run As -> Java Aplicație. Meniul de mai jos arată programul care se lansează:

Eclipse Run As Java Meniul aplicației care lansează programul HBaseConnection

  • Selectați Run.
  • Selectați Executare ca Java Aplicație.
  • Acest cod stabilește o conexiune cu HBase prin Java API-ul.
  • După rularea acestui cod, tabelul „guru99” este creat în HBase cu două familii de coloane numite „education” și „projects”. În prezent, în HBase este creată doar schema goală.

Extrasul de cod de mai jos evidențiază HTableDescriptsau și apeluri addFamily care construiesc schema tabelului:

Java cod folosind HTableDescriptsau și addFamily pentru a defini tabelul guru99 cu familiile de coloane educație și proiecte

Din captura de ecran de mai sus, îndeplinim următoarele funcții:

  • Folosind HTableDescriptsau putem crea tabelul „guru99” în HBase.
  • Folosind metoda addFamily, adăugăm „education” și „projects” ca familii de coloane în tabelul „guru99”.

Codul de mai jos va stabili o conexiune cu HBase și va crea tabelul „guru99” cu două familii de coloane. Plasați acest cod sub documentul 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......");
    }
}

Acesta este codul necesar pe care trebuie să îl plasați în HBaseConnection.java înainte de a rula Java programul.

După rularea acestui program, acesta stabilește o conexiune cu HBase și, la rândul său, creează un tabel cu nume de coloane.

  • Numele tabelului este „guru99”.
  • Familiile de coloane sunt „educație” și „proiecte”.

Pasul 4) Verificați tabelul creat în HBase

Putem verifica dacă tabelul „guru99” este creat cu două familii de coloane în HBase utilizând modul shell HBase cu comanda „list”. Comanda „list” oferă informații despre toate tabelele create în HBase.

Rularea comenzii list în shell-ul HBase confirmă noul tabel, așa cum se arată mai jos:

Rezultatul comenzii HBase shell list arată că tabelul guru99 a fost creat

  • Code verificarea în shell-ul HBase prin executarea comenzii „list”.
  • Dacă rulăm comanda „list”, aceasta afișează tabelul creat în HBase. În cazul nostru, putem vedea că tabelul „guru99” este creat.

HBase Creați tabel cu Shell

În afară de Java API, puteți crea un tabel direct din shell-ul HBase, aceasta fiind cea mai rapidă metodă de a configura un tabel pentru teste rapide. Sintaxa pentru a crea un tabel în HBase folosind shell-ul este:

Syntax: create <tablename>, <columnfamilyname>

Exemplu:-

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

Exemplul de mai sus explică modul de creare a unui tabel în HBase cu numele specificat, conform specificațiilor pentru fiecare familie de coloane. În plus, putem transmite și unele atribute de tip tabel.

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

Aici, blocul {NAME=>'Edu', VERSIONS=>…} setează o familie de coloane numită „Edu” și numărul de versiuni de celule pe care le păstrează. Numărul mare este doar ilustrativ; în practică, VERSIONS este o valoare mică, cum ar fi 3 sau 5.

Listarea, descrierea și verificarea tabelelor HBase

Crearea unui tabel este doar prima parte a gestionării tabelelor în HBase. Odată ce tabelul „guru99” există, câteva comenzi generale vă permit să îl inspectați și să îi confirmați starea înainte de a citi, scrie sau modifica date. Le puteți rula pe toate din Carcasa HBase.

Comanda list returnează fiecare tabel de utilizatori din HBase:

hbase> list

Comanda describe arată structura unui tabel, inclusiv familiile de coloane și dacă este activată în prezent:

hbase> describe 'guru99'

Comanda `exists` verifică dacă există un tabel, iar `is_enabled` raportează dacă tabelul poate accepta scrieri:

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

Aceste verificări doar în citire pot fi executate în siguranță în orice moment. Sunt cea mai rapidă modalitate de a confirma că un tabel a fost creat corect și de a revizui familiile de coloane ale acestuia înainte de a încărca datele.

Modificarea unui tabel HBase

O schemă de tabel HBase nu este fixă ​​după creare. Comanda alter modifică familiile de coloane și atributele de domeniu ale unui tabel fără a-l recrea. În funcție de versiunea HBase, poate fi necesar să dezactivați mai întâi tabelul, apoi să rulați alter și să îl activați din nou.

Pentru a adăuga o nouă familie de coloane în tabelul „guru99”:

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

Pentru a seta câte versiuni păstrează o familie de coloane:

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

Pentru a șterge o familie de coloane din tabel:

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

De asemenea, puteți modifica atributele domeniului de aplicare al tabelului. De exemplu, marcați tabelul ca fiind doar pentru citire sau setați dimensiunea maximă a fișierului regiunii la 128 MB:

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

Deoarece alter rescrie schema, planificați modificările cu atenție pe un tabel de producție și confirmați rezultatul ulterior cu describe.

Dezactivarea, activarea și eliminarea tabelelor HBase

Pentru a elimina un tabel sau a aplica anumite modificări, HBase necesită mai întâi dezactivarea acestuia. Dezactivarea pune tabelul offline, astfel încât niciun client nu poate citi sau scrie în el, ceea ce face ca modificările structurale să fie sigure.

Dezactivați un tabel și verificați starea acestuia cu is_disabled:

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

Activați din nou tabelul pentru a relua citirile și scrierile:

hbase> enable 'guru99'

Un tabel trebuie dezactivat înainte de a putea fi șters.ping șterge definitiv tabelul și toate datele sale, așa că folosiți-l cu grijă:

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

Pentru a elimina mai multe tabele simultan, drop_all șterge fiecare tabel al cărui nume se potrivește cu o expresie regulată. Împreună, funcțiile de creare, modificare, dezactivare, activare și eliminare acoperă întregul ciclu de viață al manipularea datelor în tabelele HBase.

Întrebări frecvente

Cea mai bună practică menține numărul de familii de coloane redus, ideal între una și trei. HBase golește și compactează toate familiile unei regiuni împreună, astfel încât familiile suplimentare distribuie datele pe mai multe fișiere și încetinesc citirile și scrierile. Grupați coloanele corelate într-o singură familie atunci când este posibil.

Nu. La momentul creării, definiți doar familiile de coloane. Calificatorii de coloană sunt dinamici și pot fi adăugați pe orice rând atunci când scrieți date. Acest design flexibil din punct de vedere al schemei permite fiecărui rând să conțină coloane diferite fără a modifica mai întâi tabelul.

Folosește trunchierea „guru99”, care dezactivează tabelul, îl elimină și îl recreează cu aceleași familii de coloane. Schema rămâne intactă în timp ce fiecare rând este eliminat. Acest lucru este mai rapid și mai curat decât ștergerea rândurilor pe rând.

Exemplul folosește HBaseAdmin și HTableDescriptsau, ambele depreciate de la HBase 1.0. Codul modern obține un obiect Admin dintr-o conexiune prin ConnectionFactory și construiește schema cu TableDescriptorBuilder și ColumnFamilyDescriptorBuilder. Logica de creare a tabelului rămâne aceeași.

VERSIONS setează câte versiuni cu marcaj temporal al fiecărei celule păstrează o familie de coloane. Valoarea implicită este 1. Solicitarea versiunilor mai vechi cu o comandă get sau scan le returnează până când se depășește numărul de celule reținute, după care compactarea elimină cele mai vechi celule.

HBase este potrivit pentru seturi de date foarte mari și rare, care necesită citiri și scrieri aleatorii rapide pe lângă Hadoop și HDFS. Utilizările tipice includ date de tip serie temporală, mesagerie și analiză în timp real, unde tabelele cresc până la miliarde de rânduri pe mai multe noduri.

Asistenții de codare bazați pe inteligență artificială și modelele de limbaj extins creează, modifică și elimină comenzi din solicitări în limbaj simplu, explică designul familiilor de coloane și semnalează operațiuni riscante, cum ar fi eliminarea.ping un tabel. Învățarea automată poate analiza, de asemenea, modelele de acces pentru a recomanda machete mai bune pentru cheile de rând și familii, deși un inginer ar trebui să verifice fiecare sugestie.

Da. Copilotul GitHub poate genera comenzi shell HBase și Java cod client pentru crearea, modificarea și eliminareaping tabele dintr-un scurt comentariu. RevVizualizați rezultatul pentru numele corect al tabelului, familiile de coloane și API-ul de administrare curent înainte de a-l rula.

Rezumați această postare cu: