HBase Luo taulukko Java API & Shell esimerkki

โšก ร„lykรคs yhteenveto

HBase tallentaa tietoja taulukoihin, ja voit luoda ja kรคsitellรค nรคitรค taulukoita kahdella tavalla: Java API ja HTableDescripttai ja HBaseAdmin, tai suoraan HBase-komennossa create-komennolla.

  • โ˜• Java API:t: Luo taulukoita koodissa HTablen avullaDescripttai, HColumnDescripttai ja HBaseAdmin.
  • ๐Ÿš Shellin luonti: Luo-komento luo taulukon nimen ja yhden tai useamman sarakeperheen perusteella.
  • ๐Ÿงฌ Sarakeperheet: Jokaisessa taulukossa on oltava vรคhintรครคn yksi sarakeperhe, joka mรครคritellรครคn taulukon luomisen yhteydessรค.
  • ๐Ÿ”ง Muuta taulukoita: alter-komento lisรครค sarakeperheitรค, asettaa VERSIOITA tai muuttaa taulukon laajuusattribuutteja.
  • ๐Ÿ—‘๏ธ Taulukon elinkaari: Poista taulukko kรคytรถstรค ennen sen muokkaamista tai poistamista ja ota se sitten uudelleen kรคyttรถรถn jatkaaksesi kirjoittamista.
  • ๐Ÿค– Tekoรคlyn apu: Tekoรคlyavustajat luonnostelevat luonti-, muokkaus- ja poistokomentoja sekรค tarkistavat sarakeperheiden suunnittelua.

HBase luo taulukon Java API- ja shell-komennon esimerkki

Kuinka luoda taulukko HBaseen kanssa Java API

HBasessa taulukoita voidaan luoda kahdella tavalla: Java API:n ja HBase-komentotulkin kautta. Tรคmรค osio kรคsittelee Java API, jonka avulla sovellus voi luoda taulukoita ja ladata tietoja ohjelmallisesti osana suurempaa tyรถtรค.

Kautta Java API, voimme luoda taulukoita HBaseen ja myรถs ladata tietoja taulukoihin kรคyttรคmรคllรค Java koodaus. Kaksi asiaa, jotka tรคssรค asetettiin, ovat:

  • Yhteyden luominen HBaseen kautta Java API.
  • Kรคyttรคminen Eclipse varten Java koodausta, virheenkorjausta ja testausta.

Seuraavassa on vaiheet taulukoiden luomiseksi HBase kautta Java API.

Vaihe 1) Luo a Java Projekti sisรครคn Eclipse

Tรคssรค vaiheessa aiomme luoda a Java projekti vuonna Eclipse HBase-yhteydelle nimeltรค โ€HbaseConnectionโ€.

Uusi Java Alla oleva projektivalintaikkuna nรคyttรครค, kuinka โ€HbaseConnectionโ€-projektia ollaan mรครคrittรคmรคssรค:

Eclipse Uusi Java Projektivalintaikkuna, jossa luodaan HbaseConnection-projekti JavaSE-1.7-ympรคristรถ

Jos tarkastelemme yllรค olevaa kuvakaappausta:

  • Anna projektin nimi tรคhรคn ruutuun. Meidรคn tapauksessamme projektin nimi on โ€HbaseConnectionโ€.
  • Valitse tรคmรค ruutu, jos haluat kรคyttรครค oletussijaintia tallennuspaikaksi. Tรคssรค polku on /home/hduser/work/HbaseConnection.
  • Valitse valintaruutu Java ympรคristรถ tรครคllรค. Tรคssรค tapauksessa JavaSE-1.7 on Java painos.
  • Valitse vaihtoehto, mihin haluat tallentaa tiedoston. Meidรคn tapauksessamme valitsimme toisen vaihtoehdon, โ€Luo โ€‹โ€‹erillinen kansio lรคhde- ja luokkatiedostoilleโ€.
  • Napsauta Valmis-painiketta, joka luo โ€HbaseConnectionโ€-projektin Eclipse ja avaa Eclipse etusivulle.

Vaihe 2) Mรครคritรค rakennuspolku kohdassa Eclipse

On Eclipse kotisivulla, avaa rakennuspolun mรครคritys seuraavasti:

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

Alla olevassa kuvakaappauksessa nรคkyy hiiren kakkospainikkeella avattava valikko, jota kรคytetรครคn rakennuspolun mรครคritysten avaamiseen:

Eclipse projektin hiiren kakkospainikkeen valikko, valitse Rakenna polku ja sitten Mรครคritรค rakennuspolku

Yllรค olevasta kuvakaappauksesta:

  • Napsauta projektia hiiren kakkospainikkeella.
  • Valitse Rakennuspolku.
  • Valitse Mรครคritรค koontipolku.

Kun olet napsauttanut Configure Build Path -painiketta, avautuu uusi ikkuna, kuten alla olevassa kuvakaappauksessa nรคkyy. Kirjastot-vรคlilehdellรค HBase- ja Hadoop JAR -tiedostot lisรคtรครคn projektiin:

Eclipse Java Build Path Libraries -vรคlilehti, jossa lisรคtรครคn ulkoisia HBase- ja Hadoop JAR -tiedostoja

Tรคssรค vaiheessa lisรครคmme asiaankuuluvat HBase JAR -tiedostot Java projekti, kuten kuvakaappauksessa nรคkyy.

  • Tรคrkeitรค lisรคttรคviรค JAR-tiedostoja: hbase-0.94.8.jar ja hadoop-core-1.1.2.jar.
  • Tule Kirjastot-vรคlilehdelle.
  • Paina vaihtoehtoa Lisรครค ulkoisia JAR-tiedostoja.
  • Valitse tarvittavat tรคrkeรคt JAR-tiedostot.
  • Lisรครค nรคmรค tiedostot sovelluksen "src"-kansioon painamalla Valmis-painiketta. Java projekti Kirjastot-osiossa.

Kun JAR-tiedostot on lisรคtty, ne nรคkyvรคt projektin โ€srcโ€-sijainnissa alla olevan kuvan mukaisesti:

Eclipse projektiselain, joka nรคyttรครค lisรคtyt HBase- ja Hadoop-JAR-tiedostot projektin lรคhdekoodin alla

Kaikki projektiin kuuluvat JAR-tiedostot ovat nyt kรคyttรถvalmiita Hadoop-ekosysteemissรค.

Vaihe 3) Muodosta HBase-yhteys

Tรคssรค vaiheessa HBase-yhteys muodostetaan HBaseConnection.java-tiedoston avulla Java koodaus.

On Eclipse ylรคvalikko, suorita Java ohjelma kuten alla nรคkyy: Suorita -> Suorita nimellรค -> Java Sovellus. Alla oleva valikko nรคyttรครค kรคynnistettรคvรคn ohjelman:

Eclipse Suorita nimellรค Java Sovellusvalikko, joka kรคynnistรครค HBaseConnection-ohjelman

  • Valitse Suorita.
  • Valitse Suorita nimellรค Java Sovellus.
  • Tรคmรค koodi muodostaa yhteyden HBaseen seuraavan kautta: Java API.
  • Tรคmรคn koodin suorittamisen jรคlkeen HBase-jรคrjestelmรครคn luodaan โ€guru99โ€-taulukko, jossa on kaksi sarakeperhettรค nimeltรค โ€educationโ€ ja โ€projectsโ€. Tรคllรค hetkellรค HBase-jรคrjestelmรครคn luodaan vain tyhjรค skeema.

Alla oleva koodiote korostaa HTableaDescripttai ja addFamily-kutsuja, jotka rakentavat taulukkorakenteen:

Java koodia HTablen avullaDescripttai ja addFamily mรครคrittรครคksesi guru99-taulukon, jossa on koulutus- ja projekti-sarakeperheet

Yllรค olevasta kuvakaappauksesta suoritamme seuraavat toiminnot:

  • HTablen kรคyttรถDescripttai voimme luoda "guru99"-taulukon HBase:ssa.
  • Kรคyttรคmรคllรค addFamily-metodia lisรครคmme โ€guru99โ€-taulukkoon sarakeperheinรค โ€koulutusโ€ ja โ€projektitโ€.

Alla oleva koodi muodostaa yhteyden HBaseen ja luo "guru99"-taulukon, jossa on kaksi sarakeperhettรค. Sijoita tรคmรค koodi HBaseConnection.java-dokumentin alle:

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

Tรคmรค on pakollinen koodi, joka sinun on sijoitettava HBaseConnection.java-tiedostoon ennen komennon suorittamista Java ohjelma.

Suoritettuaan tรคmรคn ohjelman se muodostaa yhteyden HBaseen ja luo puolestaan โ€‹โ€‹taulukon sarakenimineen.

  • Taulukon nimi on โ€œguru99โ€.
  • Sarakeperheet ovat โ€koulutusโ€ ja โ€projektitโ€.

Vaihe 4) Tarkista HBaseen luotu taulukko

Voimme tarkistaa, onko "guru99"-taulukko luotu kahdella sarakeperheellรค HBase-kรคyttรถliittymรคssรค, kรคyttรคmรคllรค HBase-komentotulkkitilaa "list"-komennolla. "List"-komento antaa tietoja kaikista HBase-kรคyttรถliittymรคssรค luoduista taulukoista.

HBase-komennon list-komennon suorittaminen vahvistaa uuden taulukon, kuten alla on esitetty:

HBase-komentotuloksena nรคkyy, ettรค guru99-taulukko on luotu.

  • Code tarkistamalla HBase-kuoren suorittamalla komennon "list".
  • Jos suoritamme komennon โ€listโ€, se nรคyttรครค HBase-ohjelmassa luodun taulukon. Meidรคn tapauksessamme voimme nรคhdรค, ettรค โ€guru99โ€-taulukko on luotu.

HBase Luo taulukko Shellillรค

Lisรคksi Java API:n avulla voit luoda taulukon suoraan HBase-komennosta, mikรค on nopein tapa mรครคrittรครค taulukko nopeita testejรค varten. Taulukon luomisen syntaksi HBase-komennon avulla on seuraava:

Syntax: create <tablename>, <columnfamilyname>

Esimerkki: -

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

Yllรค oleva esimerkki selittรครค, kuinka HBase-jรคrjestelmรคssรค luodaan taulukko, jonka nimi annetaan kunkin sarakeperheen mรครคritysten mukaisesti. Tรคmรคn lisรคksi voimme myรถs vรคlittรครค siihen joitakin taulukon laajuusattribuutteja.

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

Tรคssรค lohko {NAME=>'Edu', VERSIONS=>โ€ฆ} asettaa sarakeperheen nimeltรค โ€Eduโ€ ja sen sรคilyttรคmien soluversioiden mรครคrรคn. Suuri luku on vain havainnollistava; kรคytรคnnรถssรค VERSIONS on pieni arvo, kuten 3 tai 5.

HBase-taulukoiden listaaminen, kuvailu ja varmentaminen

Taulukon luominen on vasta ensimmรคinen osa taulukoiden kรคsittelystรค HBase-ohjelmassa. Kun โ€guru99โ€-taulukko on olemassa, voit tarkastella sitรค ja vahvistaa sen tilan muutamalla yleisellรค komennolla ennen tietojen lukemista, kirjoittamista tai muokkaamista. Voit suorittaa kaikki komennotโ€ฆ HBase-kuori.

list-komento palauttaa jokaisen kรคyttรคjรคtaulukon HBase-jรคrjestelmรคssรค:

hbase> list

describe-komento nรคyttรครค taulukon rakenteen, mukaan lukien sen sarakeperheet ja sen, onko se tรคllรค hetkellรค kรคytรถssรค:

hbase> describe 'guru99'

Komento exists tarkistaa, onko taulukko olemassa, ja is_enabled raportoi, voiko taulukko hyvรคksyรค kirjoituksia:

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

Nรคitรค vain luku -tilassa olevia tarkistuksia voi turvallisesti suorittaa milloin tahansa. Ne ovat nopein tapa varmistaa, ettรค taulukko on luotu oikein, ja tarkistaa sen sarakeperheet ennen tietojen lataamista.

Muuta HBase-taulukkoa

HBase-taulukon rakennetta ei korjata luomisen jรคlkeen. alter-komento muuttaa taulukon sarakeperheitรค ja taulukon laajuusattribuutteja luomatta sitรค uudelleen. HBase-versiostasi riippuen sinun on ehkรค ensin poistettava taulukko kรคytรถstรค ja sitten suoritettava alter-komento ja otettava se uudelleen kรคyttรถรถn.

Uuden sarakeperheen lisรครคminen โ€guru99โ€-taulukkoon:

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

Sarakeperheen sรคilyttรคmien versioiden mรครคrรคn mรครคrittรคminen:

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

Sarakeperheen poistaminen taulukosta:

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

Voit myรถs muuttaa taulukon laajuusmรครคritteitรค. Voit esimerkiksi merkitรค taulukon vain luku -tilaan tai asettaa aluetiedoston enimmรคiskooksi 128 Mt:n:

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

Koska alter kirjoittaa skeeman uudelleen, suunnittele muutokset huolellisesti tuotantotaulukossa ja vahvista tulos jรคlkikรคteen describe-komennolla.

HBase-taulukoiden poistaminen kรคytรถstรค, ottaminen kรคyttรถรถn ja poistaminen

Taulukon poistamiseksi tai tiettyjen muutosten tekemiseksi HBase vaatii sen ensin poistamista kรคytรถstรค. Pois kรคytรถstรค poistaminen siirtรครค taulukon offline-tilaan, joten kukaan asiakas ei voi lukea tai kirjoittaa siihen, mikรค tekee rakenteellisista muutoksista turvallisia.

Poista taulukko kรคytรถstรค ja tarkista sen tila is_disabled-metodilla:

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

Ota taulukko uudelleen kรคyttรถรถn jatkaaksesi lukemista ja kirjoittamista:

hbase> enable 'guru99'

Taulukko on poistettava kรคytรถstรค ennen kuin se voidaan pudottaa.ping poistaa taulukon ja kaikki sen tiedot pysyvรคsti, joten kรคytรค sitรค varoen:

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

Useiden taulukoiden poistamiseksi kerralla drop_all poistaa kaikki taulukot, joiden nimi vastaa sรครคnnรถllistรค lauseketta. Yhdessรค luonti, muuttaminen, poistaminen kรคytรถstรค, kรคyttรถรถnotto ja poistaminen kattavat koko taulukon elinkaaren. tietojen kรคsittely HBase-taulukoissa.

UKK

Parhaiden kรคytรคntรถjen mukaan sarakeperheiden mรครคrรค pidetรครคn alhaisena, mieluiten yhdestรค kolmeen. HBase tiivistรครค ja tiivistรครค kaikki alueen perheet yhteen, joten ylimรครคrรคiset perheet levittรคvรคt tietoja useampiin tiedostoihin ja hidastavat lukemista ja kirjoittamista. Ryhmittele toisiinsa liittyvรคt sarakkeet yhdeksi perheeksi, kun mahdollista.

Ei. Luontivaiheessa mรครคritetรครคn vain sarakeperheet. Saraketarkenteet ovat dynaamisia ja ne voidaan lisรคtรค mille tahansa riville tietoja kirjoitettaessa. Tรคmรค skeemajoustava rakenne mahdollistaa sen, ettรค jokainen rivi sisรคltรครค eri sarakkeita ilman, ettรค taulukkoa tarvitsee ensin muuttaa.

Kรคytรค katkaistua 'guru99'-metodia, joka poistaa taulukon kรคytรถstรค, poistaa sen ja luo sen uudelleen samoilla sarakeperheillรค. Kaava pysyy ennallaan, kun jokainen rivi poistetaan. Tรคmรค on nopeampaa ja siistimpรครค kuin rivien poistaminen yksi kerrallaan.

Esimerkissรค kรคytetรครคn HBaseAdminia ja HTableaDescripttai molemmat vanhentuneet HBase 1.0:sta lรคhtien. Nykyaikainen koodi hakee Admin-objektin yhteydestรค ConnectionFactory-palvelun kautta ja rakentaa skeeman taulukon avullaDescriptorBuilder ja ColumnFamilyDescriptorBuilder. Taulukon luontilogiikka pysyy samana.

VERSIOITA mรครคrittรครค, kuinka monta aikaleimattua versiota kustakin solusta sarakeperhe sรคilyttรครค. Oletusarvo on 1. Vanhempien versioiden pyytรคminen get- tai scan-kรคskyllรค โ€‹โ€‹palauttaa ne, kunnes sรคilytettyjen versioiden enimmรคismรครคrรค ylittyy, minkรค jรคlkeen pakkaaminen poistaa vanhimmat solut.

HBase sopii erittรคin suuriin ja harvoihin tietojoukkoihin, jotka tarvitsevat nopeita satunnaisia โ€‹โ€‹luku- ja kirjoitustehtรคviรค Hadoopin ja HDFS:n pรครคlle. Tyypillisiรค kรคyttรถtarkoituksia ovat aikasarjadata, viestit ja reaaliaikainen analytiikka, jossa taulukot kasvavat miljardeihin riveihin useissa solmuissa.

Tekoรคlykoodausavustajat ja laajat kielimallit luonnostelevat luonti-, muokkaus- ja poistokomentoja selkokielisistรค kehotteista, selittรคvรคt sarakeperheiden suunnittelun ja merkitsevรคt riskialttiita toimintoja, kuten poiston.ping taulukko. Koneoppiminen voi myรถs analysoida kรคyttรถoikeusmalleja ja suositella parempia rivi-avainten ja perheiden asetteluja, vaikka insinรถรถrin tulisi tarkistaa jokainen ehdotus.

Kyllรค. GitHub Copilot voi luoda HBase-komentot ja Java asiakaskoodi luomiseen, muuttamiseen ja poistamiseenping taulukot lyhyestรค kommentista. RevTarkista sen tulosteesta oikea taulukon nimi, sarakeperheet ja nykyinen Admin API ennen sen suorittamista.

Tiivistรค tรคmรค viesti seuraavasti: