HBase Utwórz tabelę za pomocą Java Przykład API i powłoki

⚡ Inteligentne podsumowanie

HBase przechowuje dane w tabelach, a tworzenie i zarządzanie tymi tabelami jest możliwe na dwa sposoby: poprzez Java API z HTableDescriptlub HBaseAdmin, albo bezpośrednio w powłoce HBase, używając polecenia create.

  • Java OGIEŃ: Twórz tabele w kodzie za pomocą HTableDescriptlub kolumna HDescriptlub i HBaseAdmin.
  • 🐚 Tworzenie powłoki: Polecenie create tworzy tabelę na podstawie nazwy i jednej lub więcej rodzin kolumn.
  • 🧬 Rodziny kolumn: Każda tabela potrzebuje co najmniej jednej rodziny kolumn, definiowanej podczas tworzenia tabeli.
  • 🔧 Zmień tabele: Polecenie alter dodaje rodziny kolumn, ustawia WERSJE lub zmienia atrybuty zakresu tabeli.
  • 🗑️ Cykl życia tabeli: Przed zmianą lub usunięciem tabeli należy ją wyłączyć, a następnie ponownie ją włączyć, aby wznowić zapis.
  • 🤖 Asystent AI: Asystenci AI tworzą, zmieniają i upuszczają polecenia oraz sprawdzają projekty rodzin kolumn.

HBase tworzy tabelę za pomocą Java Przykład API i poleceń powłoki

Jak utworzyć tabelę w HBase za pomocą Java API

W HBase tabele można tworzyć na dwa sposoby: poprzez Java API i poprzez powłokę HBase. Ta sekcja obejmuje Java API umożliwiające aplikacji tworzenie tabel i ładowanie danych programowo jako część większego zadania.

Przez Java API, możemy tworzyć tabele w HBase, a także ładować dane do tabel za pomocą Java kodowanie. Dwie rzeczy, które tutaj konfigurujemy to:

  • Nawiązanie połączenia z HBase poprzez Java API.
  • Korzystanie z Eclipse dla Java kodowanie, debugowanie i testowanie.

Poniżej przedstawiono kroki tworzenia tabel w HBase za pośrednictwem Java API.

Krok 1) Utwórz plik Java Projekt w Eclipse

W tym kroku utworzymy plik Java projekt w Eclipse dla połączenia HBase o nazwie „HbaseConnection”.

Nowy Java Poniższe okno dialogowe projektu pokazuje konfigurację projektu „HbaseConnection”:

Eclipse Nowości Java Okno dialogowe projektu tworzące projekt HbaseConnection z JavaŚrodowisko SE-1.7

Jeśli przyjrzymy się powyższemu zrzutowi ekranu:

  • W tym polu wpisz nazwę projektu. W naszym przypadku nazwa projektu to „HbaseConnection”.
  • Zaznacz to pole, aby zapisać domyślną lokalizację. Tutaj ścieżka to /home/hduser/work/HbaseConnection.
  • Zaznacz pole dla Java środowisko tutaj. W tym przypadku JavaSE-1.7 to Java edition.
  • Wybierz opcję, gdzie chcesz zapisać plik. W naszym przypadku wybraliśmy drugą opcję: „Utwórz osobny folder dla plików źródłowych i klas”.
  • Kliknij przycisk Zakończ, co spowoduje utworzenie projektu „HbaseConnection” w Eclipse i otwiera Eclipse strona główna.

Krok 2) Skonfiguruj ścieżkę kompilacji w Eclipse

Na Eclipse strona główna, wykonaj następujące kroki, aby otworzyć konfigurację ścieżki kompilacji:

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

Poniższy zrzut ekranu przedstawia menu prawego przycisku myszy służące do otwierania konfiguracji ścieżki kompilacji:

Eclipse kliknij prawym przyciskiem myszy w menu projektu, wybierając Ścieżkę kompilacji, a następnie Konfiguruj ścieżkę kompilacji

Ze zrzutu ekranu powyżej:

  • Kliknij prawym przyciskiem myszy projekt.
  • Wybierz ścieżkę kompilacji.
  • Wybierz opcję Konfiguruj ścieżkę kompilacji.

Po kliknięciu „Konfiguruj ścieżkę kompilacji” otwiera się kolejne okno, pokazane na poniższym zrzucie ekranu. Karta Biblioteki to miejsce, w którym do projektu dodawane są pliki JAR HBase i Hadoop:

Eclipse Java Karta Biblioteki ścieżek kompilacji dodawania zewnętrznych plików JAR HBase i Hadoop

W tym kroku dodajemy odpowiednie pliki JAR HBase do Java projekt pokazany na zrzucie ekranu.

  • Ważne pliki JAR, które zostaną dodane: hbase-0.94.8.jar i hadoop-core-1.1.2.jar.
  • Przejdź do zakładki Biblioteki.
  • Kliknij opcję Dodaj zewnętrzne pliki JAR.
  • Wybierz wymagane ważne pliki JAR.
  • Naciśnij przycisk Zakończ, aby dodać te pliki do „źródła” Java projekt w ramach Bibliotek.

Po dodaniu plików JAR pojawią się one w lokalizacji „src” projektu, jak pokazano poniżej:

Eclipse Eksplorator projektu pokazujący dodane pliki JAR HBase i Hadoop w źródle projektu

Wszystkie pliki JAR objęte projektem są teraz gotowe do wykorzystania w ekosystemie Hadoop.

Krok 3) Nawiąż połączenie HBase

W tym kroku za pomocą HBaseConnection.java nawiązywane jest połączenie z HBase Java kodowanie.

Na Eclipse górne menu, wykonaj Java program, jak pokazano poniżej: Uruchom -> Uruchom jako -> Java Aplikacja. Poniższe menu pokazuje uruchamiany program:

Eclipse Uruchom jako Java Menu aplikacji uruchamiające program HBaseConnection

  • Wybierz Uruchom.
  • Wybierz opcję Uruchom jako Java Podanie.
  • Ten kod nawiązuje połączenie z HBase poprzez Java API.
  • Po uruchomieniu tego kodu, w HBase tworzona jest tabela „guru99” z dwiema rodzinami kolumn o nazwach „edukacja” i „projekty”. Obecnie w HBase tworzony jest tylko pusty schemat.

Poniższy fragment kodu podkreśla HTableDescriptlub i addFamily wywołuje, co buduje schemat tabeli:

Java kod wykorzystujący HTableDescriptlub addFamily, aby zdefiniować tabelę guru99 z rodzinami kolumn edukacji i projektów

Na powyższym zrzucie ekranu wykonujemy następujące funkcje:

  • Korzystanie z HTableDescriptlub możemy utworzyć tabelę „guru99” w HBase.
  • Używając metody addFamily, dodajemy „edukacja” i „projekty” jako rodziny kolumn do tabeli „guru99”.

Poniższy kod nawiąże połączenie z HBase i utworzy tabelę „guru99” z dwiema rodzinami kolumn. Umieść ten kod w dokumencie 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......");
    }
}

To jest wymagany kod, który należy umieścić w pliku HBaseConnection.java przed uruchomieniem Java program.

Po uruchomieniu programu nawiązuje on połączenie z HBase i tworzy tabelę z nazwami kolumn.

  • Nazwa tabeli to „guru99”.
  • Rodziny kolumn to „edukacja” i „projekty”.

Krok 4) Sprawdź utworzoną tabelę w HBase

Możemy sprawdzić, czy tabela „guru99” została utworzona z dwiema rodzinami kolumn w HBase, używając trybu powłoki HBase za pomocą polecenia „list”. Polecenie „list” podaje informacje o wszystkich tabelach utworzonych w HBase.

Uruchomienie polecenia list w powłoce HBase potwierdza nową tabelę, jak pokazano poniżej:

Wynik polecenia listy powłoki HBase pokazujący utworzenie tabeli guru99

  • Code sprawdzenie w powłoce HBase poprzez wykonanie polecenia „list”.
  • Uruchomienie polecenia „list” spowoduje wyświetlenie tabeli utworzonej w HBase. W naszym przypadku widać, że utworzono tabelę „guru99”.

HBase Utwórz tabelę za pomocą powłoki

Ponadto Java Za pomocą interfejsu API możesz utworzyć tabelę bezpośrednio z powłoki HBase, co jest najszybszym sposobem na skonfigurowanie tabeli do szybkich testów. Składnia tworzenia tabeli w HBase za pomocą powłoki jest następująca:

Syntax: create <tablename>, <columnfamilyname>

Przykład:-

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

Powyższy przykład wyjaśnia, jak utworzyć tabelę w HBase o określonej nazwie, zgodnie ze specyfikacją dla każdej rodziny kolumn. Dodatkowo, możemy przekazać do niej atrybuty zakresu tabeli.

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

Tutaj blok {NAME=>'Edu', VERSIONS=>…} ustawia rodzinę kolumn o nazwie „Edu” oraz liczbę przechowywanych przez nią wersji komórek. Duża liczba ma charakter poglądowy; w praktyce VERSIONS to mała wartość, na przykład 3 lub 5.

Wyświetlanie listy, opisywanie i weryfikacja tabel HBase

Utworzenie tabeli to dopiero pierwszy etap obsługi tabel w HBase. Po utworzeniu tabeli „guru99” kilka ogólnych poleceń pozwala na jej sprawdzenie i potwierdzenie stanu przed odczytaniem, zapisaniem lub modyfikacją danych. Wszystkie te polecenia można uruchomić z poziomu Powłoka HBase.

Polecenie list zwraca każdą tabelę użytkownika w HBase:

hbase> list

Polecenie describe pokazuje strukturę tabeli, w tym rodziny kolumn i informuje, czy jest ona aktualnie włączona:

hbase> describe 'guru99'

Polecenie exists sprawdza, czy tabela jest obecna, a polecenie is_enabled informuje, czy tabela może przyjmować zapisy:

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

Te kontrole tylko do odczytu można bezpiecznie uruchomić w dowolnym momencie. To najszybszy sposób na potwierdzenie, że tabela została utworzona poprawnie, oraz na sprawdzenie rodzin kolumn przed załadowaniem danych.

Zmiana tabeli HBase

Schemat tabeli HBase nie jest stały po utworzeniu. Polecenie alter zmienia rodziny kolumn tabeli i atrybuty zakresu tabeli bez jej ponownego tworzenia. W zależności od wersji HBase, może być konieczne najpierw wyłączenie tabeli, a następnie uruchomienie polecenia alter i ponowne jej włączenie.

Aby dodać nową rodzinę kolumn do tabeli „guru99”:

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

Aby ustawić liczbę wersji przechowywanych przez rodzinę kolumn:

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

Aby usunąć rodzinę kolumn z tabeli:

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

Możesz również zmienić atrybuty zakresu tabeli. Na przykład, oznacz tabelę jako tylko do odczytu lub ustaw maksymalny rozmiar pliku regionu na 128 MB:

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

Ponieważ alter przepisuje schemat, zaplanuj zmiany ostrożnie w tabeli produkcyjnej i potwierdź wynik później opisem.

Wyłączanie, włączanie i usuwanie tabel HBase

Aby usunąć tabelę lub wprowadzić określone zmiany, HBase wymaga jej wcześniejszego wyłączenia. Wyłączenie powoduje, że tabela jest offline, co uniemożliwia klientom odczytanie jej lub zapisanie, co sprawia, że ​​zmiany strukturalne są bezpieczne.

Wyłącz tabelę i sprawdź jej stan za pomocą is_disabled:

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

Aby wznowić odczyty i zapisy, ponownie włącz tabelę:

hbase> enable 'guru99'

Aby usunąć tabelę, należy ją najpierw wyłączyć. Usuńping usuwa tabelę i wszystkie jej dane na stałe, dlatego należy używać tej opcji ostrożnie:

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

Aby usunąć kilka tabel jednocześnie, polecenie drop_all usuwa każdą tabelę, której nazwa pasuje do wyrażenia regularnego. Razem funkcje tworzenia, modyfikowania, wyłączania, włączania i usuwania obejmują cały cykl życia tabeli. przetwarzanie danych w tabelach HBase.

FAQ

Najlepsze praktyki ograniczają liczbę rodzin kolumn do minimum, najlepiej od jednej do trzech. HBase opróżnia i kompresuje wszystkie rodziny danego regionu, więc dodatkowe rodziny rozpraszają dane na większą liczbę plików, co spowalnia odczyt i zapis. W miarę możliwości należy grupować powiązane kolumny w jedną rodzinę.

Nie. Podczas tworzenia definiuje się tylko rodziny kolumn. Kwalifikatory kolumn są dynamiczne i można je dodawać w dowolnym wierszu podczas zapisywania danych. Ta elastyczna konstrukcja pozwala, aby każdy wiersz zawierał różne kolumny bez konieczności wcześniejszej modyfikacji tabeli.

Użyj polecenia „truncate 'guru99”, które wyłącza tabelę, usuwa ją i tworzy ponownie z tymi samymi rodzinami kolumn. Schemat pozostaje nienaruszony, mimo że każdy wiersz jest usuwany. Jest to szybsze i bardziej przejrzyste niż usuwanie wierszy pojedynczo.

W przykładzie wykorzystano HBaseAdmin i HTableDescriptlub oba są przestarzałe od wersji HBase 1.0. Nowoczesny kod pobiera obiekt Admin z połączenia przez ConnectionFactory i buduje schemat za pomocą TableDescriptorBuilder i ColumnFamilyDescriptorBuilder. Logika tworzenia tabel pozostaje taka sama.

VERSIONS określa liczbę wersji z sygnaturą czasową każdej komórki przechowywanych przez rodzinę kolumn. Wartość domyślna to 1. Żądanie starszych wersji za pomocą polecenia get lub scan zwraca je do momentu przekroczenia limitu przechowywanych komórek. Po tym czasie kompresja usuwa najstarsze komórki.

HBase jest odpowiedni dla bardzo dużych, rozproszonych zbiorów danych, które wymagają szybkich, losowych odczytów i zapisów w oparciu o Hadoop i HDFS. Typowe zastosowania obejmują dane szeregów czasowych, przesyłanie wiadomości i analizy w czasie rzeczywistym, gdzie tabele rozrastają się do miliardów wierszy w wielu węzłach.

Asystenci kodowania AI i duże modele językowe tworzą, zmieniają i usuwają polecenia z monitów w języku potocznym, wyjaśniają projekt rodziny kolumn i oznaczają ryzykowne operacje, takie jak usuwanieping tabela. Uczenie maszynowe może również analizować wzorce dostępu, aby rekomendować lepsze układy kluczy wierszy i rodzin, choć inżynier powinien zweryfikować każdą sugestię.

Tak. Drugi pilot GitHub może generować polecenia powłoki HBase i Java kod klienta do tworzenia, modyfikowania i usuwaniaping tabele z krótkiego komentarza. RevPrzed uruchomieniem sprawdź jego wynik pod kątem prawidłowej nazwy tabeli, rodzin kolumn i bieżącego interfejsu API administratora.

Podsumuj ten post następująco: