HBase Створення таблиці за допомогою Java API та приклад оболонки

⚡ Розумний підсумок

HBase зберігає дані в таблицях, і ви можете створювати та обробляти ці таблиці двома способами: через Java API з HTableDescriptабо та HBaseAdmin, або безпосередньо в оболонці HBase за допомогою команди create.

  • Java API: Створення таблиць у коді за допомогою HTableDescriptабо, HColumnDescriptабо та HBaseAdmin.
  • 🐚 Створення оболонки: Команда create створює таблицю з імені та одного або кількох сімейств стовпців.
  • 🧬 Сімейства колон: Кожна таблиця потребує принаймні одного сімейства стовпців, яке визначається під час створення таблиці.
  • 🔧 Змінити таблиці: Команда alter додає сімейства стовпців, встановлює VERSIONS або змінює атрибути області видимості таблиці.
  • 🗑️ Життєвий цикл таблиці: Вимкніть таблицю перед тим, як змінити або видалити її, а потім знову ввімкніть її, щоб відновити запис.
  • 🤖 Допомога ШІ: Помічники ШІ створюють чернетки команд створення, зміни та видалення, а також перевіряють дизайн сімейств стовпців.

HBase створює таблицю за допомогою Java Приклад команди API та оболонки

Як створити таблицю в HBase за допомогою Java API

У HBase таблиці можна створювати двома способами: через Java API та через оболонку HBase. У цьому розділі розглядається Java API, який дозволяє програмі створювати таблиці та завантажувати дані програмно як частину більшого завдання.

через Java API, ми можемо створювати таблиці в HBase, а також завантажувати дані в таблиці за допомогою Java кодування. Дві речі, які ми тут налаштували:

  • Встановлення з'єднання з HBase через Java API.
  • використання Eclipse та цінності Java кодування, налагодження та тестування.

Нижче наведено кроки для створення таблиць у HBase Java API.

Крок 1) Створіть a Java Проект в Eclipse

На цьому кроці ми збираємося створити a Java проект в Eclipse для підключення HBase з назвою «HbaseConnection».

Нові Java У діалоговому вікні проекту нижче показано налаштування проекту «HbaseConnection»:

Eclipse Нові Java Діалогове вікно проекту, що створює проект HbaseConnection з JavaСередовище SE-1.7

Якщо ми розглянемо скріншот вище:

  • Введіть назву проекту в цьому полі. У нашому випадку назва проекту — «HbaseConnection».
  • Поставте позначку в цьому полі, щоб зберегти розташування за замовчуванням. Тут шлях – /home/hduser/work/HbaseConnection.
  • Поставте прапорець для Java середовище тут. У цьому випадку JavaSE-1.7 є Java edition.
  • Виберіть опцію, де ви хочете зберегти файл. У нашому випадку ми вибрали другу опцію: «Створити окрему папку для вихідних кодів та файлів класів».
  • Натисніть кнопку «Готово», що створить проект «HbaseConnection» у Eclipse і відкриває Eclipse домашня сторінка.

Крок 2) Налаштуйте шлях збірки в Eclipse

на Eclipse На головній сторінці виконайте такі дії, щоб відкрити конфігурацію шляху збірки:

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

На скріншоті нижче показано контекстне меню, яке використовується для відкриття конфігурації шляху збірки, що відображається клацанням правою кнопкою миші:

Eclipse контекстне меню проекту, вибравши шлях збірки, а потім налаштувати шлях збірки

Зі скріншоту вище:

  • Клацніть правою кнопкою миші на проекті.
  • Виберіть «Шлях побудови».
  • Виберіть «Налаштувати шлях збірки».

Після натискання кнопки «Налаштувати шлях збірки» відкриється інше вікно, показане на скріншоті нижче. На вкладці «Бібліотеки» додаються JAR-файли HBase та Hadoop до проекту:

Eclipse Java Вкладка «Бібліотеки шляхів збірки» для додавання зовнішніх JAR-файлів HBase та Hadoop

На цьому кроці ми додаємо відповідні JAR-файли HBase до Java проект, як показано на скріншоті.

  • Важливі JAR-файли, які потрібно додати: hbase-0.94.8.jar та hadoop-core-1.1.2.jar.
  • Перейдіть на вкладку «Бібліотеки».
  • Натисніть опцію Додати зовнішні JAR-файли.
  • Виберіть необхідні важливі JAR-файли.
  • Натисніть кнопку «Готово», щоб додати ці файли до «src» Java проєкт у розділі «Бібліотеки».

Після додавання JAR-файлів вони відображаються в каталозі проекту «src», як показано нижче:

Eclipse оглядач проектів, що показує додані JAR-файли HBase та Hadoop у вихідному коді проекту

Усі JAR-файли, що входять до проєкту, тепер готові до використання в екосистемі Hadoop.

Крок 3) Встановіть підключення HBase

На цьому кроці, використовуючи HBaseConnection.java, встановлюється з’єднання HBase через Java кодування.

на Eclipse верхньому меню, виконайте Java програму, як показано нижче: Виконати -> Виконати від імені -> Java Програма. У меню нижче показано запущену програму:

Eclipse Запуск від імені Java Меню програми, що запускає програму HBaseConnection

  • Виберіть «Виконати».
  • Виберіть Запустити від імені Java Застосування
  • Цей код встановлює з'єднання з HBase через Java API.
  • Після виконання цього коду в HBase створюється таблиця «guru99» з двома сімействами стовпців під назвами «education» та «projects». Наразі в HBase створюється лише пуста схема.

Уривок коду нижче виділяє HTableDescriptабо та виклики addFamily, які будують схему таблиці:

Java код за допомогою HTableDescriptабо та addFamily для визначення таблиці guru99 із сімействами стовпців education та projects

З наведеного вище скріншоту видно, що ми виконуємо такі функції:

  • Використання HTableDescriptабо ж ми можемо створити таблицю «guru99» у HBase.
  • Використовуючи метод addFamily, ми додаємо «education» та «projects» як сімейства стовпців до таблиці «guru99».

Наведений нижче код встановить з’єднання з HBase та створить таблицю «guru99» з двома сімействами стовпців. Розмістіть цей код під документом 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......");
    }
}

Це обов'язковий код, який потрібно розмістити в HBaseConnection.java перед запуском Java програми.

Після запуску цієї програми вона встановлює з'єднання з HBase та, у свою чергу, створює таблицю з іменами стовпців.

  • Назва таблиці — «guru99».
  • Сімейства стовпців – це «освіта» та «проекти».

Крок 4) Перевірте створену таблицю в HBase

Ми можемо перевірити, чи створено таблицю «guru99» з двома сімействами стовпців у HBase, використовуючи режим оболонки HBase за допомогою команди «list». Команда «list» надає інформацію про всі таблиці, створені в HBase.

Виконання команди list в оболонці HBase підтверджує нову таблицю, як показано нижче:

Вивід команди HBase shell list, що показує створення таблиці guru99

  • Code перевірка в оболонці HBase за допомогою команди «list».
  • Якщо ми виконаємо команду «list», вона відобразить таблицю, створену в HBase. У нашому випадку ми бачимо, що створено таблицю «guru99».

HBase Створення таблиці з оболонкою

Крім того, Java API, ви можете створити таблицю безпосередньо з оболонки HBase, що є найшвидшим способом налаштувати таблицю для швидких тестів. Синтаксис для створення таблиці в HBase за допомогою оболонки такий:

Syntax: create <tablename>, <columnfamilyname>

Приклад:-

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

У наведеному вище прикладі пояснюється, як створити таблицю в HBase із заданим ім'ям, наданим відповідно до специфікацій для кожного сімейства стовпців. Крім того, ми також можемо передати їй деякі атрибути області видимості таблиці.

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

Тут блок {NAME=>'Edu', VERSIONS=>…} встановлює сімейство стовпців з назвою «Edu» та кількість версій комірок, які воно зберігає. Велике число є лише ілюстративним; на практиці VERSIONS – це мале значення, таке як 3 або 5.

Список, опис та перевірка таблиць HBase

Створення таблиці – це лише перша частина роботи з таблицями в HBase. Щойно таблиця «guru99» існує, кілька загальних команд дозволяють перевірити її стан і підтвердити його перед читанням, записом або зміною даних. Ви можете запускати їх усі з HBase оболонка.

Команда list повертає кожну таблицю користувачів у HBase:

hbase> list

Команда describe показує структуру таблиці, включаючи її сімейства стовпців та чи ввімкнено її наразі:

hbase> describe 'guru99'

Команда exists перевіряє, чи присутня таблиця, а команда is_enabled повідомляє, чи може таблиця приймати записи:

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

Ці перевірки лише для читання можна безпечно виконувати будь-коли. Вони є найшвидшим способом підтвердити правильність створення таблиці та переглянути її сімейства стовпців перед завантаженням даних.

Зміна таблиці HBase

Схема таблиці HBase не фіксується після створення. Команда alter змінює сімейства стовпців таблиці та атрибути області видимості таблиці, не створюючи її повторно. Залежно від версії HBase, вам може знадобитися спочатку вимкнути таблицю, а потім виконати команду alter та знову ввімкнути її.

Щоб додати нове сімейство стовпців до таблиці «guru99»:

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

Щоб встановити, скільки версій зберігатиметься в сімействі стовпців:

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

Щоб видалити сімейство стовпців з таблиці:

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

Ви також можете змінити атрибути області видимості таблиці. Наприклад, позначити таблицю лише для читання або встановити максимальний розмір файлу регіону на 128 МБ:

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

Оскільки команда alter переписує схему, ретельно плануйте зміни у виробничій таблиці та підтверджуйте результат після цього за допомогою команди describe.

Вимкнення, увімкнення та видалення таблиць HBase

Щоб видалити таблицю або застосувати певні зміни, HBase вимагає спочатку її вимкнення. Вимкнення переводить таблицю в автономний режим, тому жоден клієнт не може її читати або записувати, що робить структурні зміни безпечними.

Вимкніть таблицю та перевірте її стан за допомогою is_disabled:

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

Знову увімкніть таблицю, щоб відновити читання та запис:

hbase> enable 'guru99'

Таблицю потрібно вимкнути, перш ніж її можна буде видалити. Видалитиping видаляє таблицю та всі її дані назавжди, тому використовуйте її обережно:

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

Щоб видалити кілька таблиць одночасно, drop_all видаляє всі таблиці, ім'я яких відповідає регулярному виразу. Разом, створення, зміна, вимикання, увімкнення та видалення охоплюють повний життєвий цикл обробка даних у таблицях HBase.

Поширені запитання

Найкраща практика полягає в тому, щоб кількість сімейств стовпців була низькою, в ідеалі від одного до трьох. HBase об'єднує та стискає всі сімейства регіону разом, тому додаткові сімейства розподіляють дані по більшій кількості файлів та уповільнюють читання та запис. По можливості групуйте пов'язані стовпці в одне сімейство.

Ні. Під час створення ви визначаєте лише сімейства стовпців. Кваліфікатори стовпців є динамічними та можуть бути додані до будь-якого рядка під час запису даних. Ця гнучка за схемою конструкція дозволяє кожному рядку містити різні стовпці без попередньої зміни таблиці.

Використовуйте скорочення 'guru99', яке вимикає таблицю, видаляє її та створює заново з тими ж сімействами стовпців. Схема залишається незмінною під час видалення кожного рядка. Це швидше та чистіше, ніж видалення рядків по одному.

У прикладі використовуються HBaseAdmin та HTableDescriptабо обидва застарілі з часів HBase 1.0. Сучасний код отримує об'єкт Admin з Connection через ConnectionFactory та будує схему з Table.DescriptorBuilder та ColumnFamilyDescriptабоBuilder. Логіка створення таблиці залишається незмінною.

VERSIONS встановлює кількість версій кожної комірки з часовими позначками, які зберігає сімейство стовпців. Значення за замовчуванням – 1. Запит старіших версій за допомогою get або scan повертає їх, доки не буде перевищено ліміт збережених версій, після чого стиснення видаляє найстаріші комірки.

HBase підходить для дуже великих, розріджених наборів даних, які потребують швидкого випадкового читання та запису поверх Hadoop та HDFS. Типові використання включають дані часових рядів, обмін повідомленнями та аналітику в режимі реального часу, де таблиці розростаються до мільярдів рядків на багатьох вузлах.

Помічники кодування на основі штучного інтелекту та моделі великих мов створюють команди створення, зміни та видалення з підказок простою мовою, пояснюють дизайн сімейств стовпців та позначають ризиковані операції, такі як видаленняping таблиця. Машинне навчання також може аналізувати шаблони доступу, щоб рекомендувати кращі макети ключів рядків та сімейств, хоча інженер повинен перевірити кожну пропозицію.

Так. Копілот GitHub може генерувати команди оболонки HBase та Java клієнтський код для створення, зміни та видаленняping таблиці з короткого коментаря. RevПеревірте його вихідні дані щодо правильної назви таблиці, сімейств стовпців та поточного API адміністратора, перш ніж запускати його.

Підсумуйте цей пост за допомогою: