Команди оболонки HBase з прикладами

Зміст:

Anonim

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

Ми можемо взаємодіяти з HBase двома способами,

  • Інтерактивний режим оболонки HBase і
  • Через Java API

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

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

Швидке перекриття HBase перед тим, як продовжити -

  • HBase використовує файли Hadoop як систему зберігання для зберігання великих обсягів даних. Hbase складається з основних серверів та серверів регіонів
  • Дані, які збираються зберігати в HBase, будуть у вигляді регіонів. Далі ці регіони будуть розділені та збережені на декількох регіональних серверах
  • Ці команди оболонки дозволяють програмісту визначати схеми таблиць та операції з даними, використовуючи повну взаємодію в режимі оболонки
  • Яку б команду ми не використовували, вона відображатиметься в моделі даних HBase
  • Ми використовуємо команди оболонки HBase в інтерпретаторах сценаріїв операційної системи, таких як оболонка Bash
  • Bash-оболонка - це інтерпретатори команд за замовчуванням для більшості операційних дистрибутивів Linux та Unix
  • Розширені версії HBase надають команди оболонки об’єктно-орієнтовані посилання для таблиць у стилі jruby
  • Змінні таблиці посилання можуть бути використані для виконання операцій з даними в режимі оболонки HBase

Для прикладу ,

  • У цьому підручнику ми створили таблицю, в якій "освіта" представляє назву таблиці та відповідає назві стовпця "guru99".
  • У деяких командах "guru99" сам представляє ім'я таблиці.

У цьому підручнику ви дізнаєтесь,

  • Загальні команди
  • Команди управління таблицями
  • Команди обробки даних
  • Команди кластерної реплікації

Загальні команди

У Hbase загальні команди класифікуються на наступні команди

  • Статус
  • Версія
  • Table_help (сканувати, скидати, отримувати, розміщувати, вимикати тощо)
  • Хто я

Щоб увійти в команду оболонки HBase, перш за все, ми повинні виконати код, як зазначено нижче

hbase Shell

Після того, як ми потрапимо в оболонку HBase, ми можемо виконати всі команди оболонки, згадані нижче. За допомогою цих команд ми можемо виконувати всі типи операцій з таблицями в режимі оболонки HBase.

Давайте розглянемо всі ці команди та їх використання по одному на прикладі.

Статус

Syntax:status

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

Нижче ми показали, як ви можете передавати різні параметри команді status.

Якщо ми спостерігаємо знімок екрана нижче, ми отримаємо кращу ідею.

hbase(main):001:0>statushbase(main):002:0>status 'simple'hbase(main):003:0>status 'summary'hbase(main):004:0> status 'detailed'

Коли ми виконуємо цей стан команди, він надасть інформацію про кількість справжніх, мертвих серверів сервера та середнє навантаження сервера, тут на скріншоті відображається така інформація, як: 1 живий сервер, 1 мертвий сервер та 7,0000 середнього навантаження.

Версія

Syntax: version

  • Ця команда відобразить поточну версію HBase у командному режимі
  • Якщо запустити команду версії, вона видасть результат, як показано вище

Довідка таблиці

Syntax:table_help

Ця команда керує

  • Що і як використовувати команди, на які посилаються таблиці
  • Він забезпечить різні способи використання команд оболонки HBase та їх синтаксиси
  • Тут, на знімку екрана вище, він показує синтаксис команд " create" та " get_table" із його використанням. Ми можемо маніпулювати таблицею за допомогою цих команд, як тільки таблиця буде створена в HBase.
  • Це дасть команди маніпуляцій з таблицею, такі як put, get та всі інші команди інформації.

хто я

Синтаксис:

Syntax: Whoami

Ця команда "whoami" використовується для повернення поточної інформації про користувача HBase із кластера HBase.

Він надасть таку інформацію, як

  • Групи, присутні в HBase
  • Інформація про користувача, наприклад у цьому випадку "hduser", представляє ім'я користувача, як показано на знімку екрана

TTL (Time To Live) - атрибут

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

Час TTL, закодований у HBase для рядка, вказаний у UTC. Цей атрибут використовується з командами управління таблицями.

Важливі відмінності між обробкою TTL та TTL сімейства стовпців наведені нижче

  • TTL комірок виражаються в одиницях мілісекунд замість секунд.
  • TTL клітинки не можуть продовжити ефективний час життя клітини за межі рівня TTL рівня сімейства стовпців.

Команди управління таблицями

Ці команди дозволять програмістам створювати таблиці та схеми таблиць із рядками та сімействами стовпців.

Нижче наведено команди управління таблицями

  • Створити
  • Список
  • Опишіть
  • Вимкнути
  • Відключити все
  • Увімкнути
  • Enable_all
  • Падіння
  • Drop_all
  • Показати_фільтри
  • Змінювати
  • Alter_status

Давайте розглянемо різні приклади використання команд у HBase.

Створити

Syntax: create 
, 

Приклад: -

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

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

Для того, щоб перевірити, чи створена таблиця «освіта» чи ні, ми повинні використовувати команду «list», як зазначено нижче.

Список

Syntax:list

  • Команда "List" відобразить усі таблиці, які є або створені в HBase
  • Вихідні дані, показані на знімку екрана, в даний час відображають існуючі таблиці в HBase
  • Тут, на цьому скріншоті, видно, що всередині HBase є 8 таблиць
  • Ми можемо фільтрувати вихідні значення з таблиць, передаючи необов’язкові параметри регулярних виразів

Опишіть

Syntax:describe 

hbase(main):010:0>describe 'education'

Ця команда описує названу таблицю.

  • Він дасть більше інформації про сім’ї колонок, присутніх у згаданій таблиці
  • У нашому випадку це дає опис таблиці "освіта".
  • Він надасть інформацію про назву таблиці із сімействами стовпців, пов'язаними фільтрами, версіями та деякими деталями.

відключити

Syntax: disable 

hbase(main):011:0>disable 'education'
  • Ця команда почне вимикати названу таблицю
  • Якщо таблицю потрібно видалити або скинути, її потрібно відключити спочатку

Тут, на наведеному вище скріншоті, ми вимикаємо освіту таблиць

відключити все

 Syntax: disable_all<"matching regex"
  • Ця команда вимкне всі таблиці, що відповідають даному регулярному виразу.
  • Реалізація така ж, як і команда видалення (крім додавання регулярного виразу для відповідності)
  • Після відключення таблиці користувач може видалити таблицю з HBase
  • Перш ніж видаляти або видаляти таблицю, її слід спочатку відключити

Увімкнути

Syntax: enable 

hbase(main):012:0>enable 'education'
  • Ця команда почне активувати названу таблицю
  • Незалежно від того, яку таблицю вимкнено, ми використовуємо цю команду для повернення до попереднього стану
  • Якщо таблиця відключена в першу чергу, а не видалена або скинута, і якщо ми хочемо повторно використовувати вимкнену таблицю, ми повинні її ввімкнути за допомогою цієї команди.
  • На наведеному вище скріншоті ми ввімкнули таблицю "освіта".

show_filters

Syntax: show_filters

Ця команда відображає всі фільтри, наявні в HBase, такі як ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter тощо.

крапля

Syntax:drop 

hbase(main):017:0>drop 'education'

Ми повинні дотримуватися нижче пунктів для команди drop

  • Щоб видалити таблицю, присутню в HBase, спочатку ми повинні її відключити
  • Щоб скинути таблицю, присутню в HBase, спочатку ми повинні її відключити
  • Отже, будь-яку таблицю, яку потрібно скинути або видалити спочатку, слід відключити за допомогою команди disable
  • Тут, на скріншоті вище, ми опускаємо таблицю "освіта".
  • Перед виконанням цієї команди необхідно вимкнути таблицю "освіта".

drop_all

Syntax: drop_all<"regex">
  • Ця команда скине всі таблиці, що відповідають даному регулярному виразу
  • Перш ніж виконувати цю команду за допомогою disable_all, таблиці потрібно вимкнути спочатку
  • Таблиці з виразами, що відповідають регулярним виразам, будуть вилучені з HBase

is_enabled

Syntax: is_enabled 'education'

Ця команда перевірить, чи включена названа таблиця чи ні. Зазвичай існує невелика плутанина між командою "enable" та "is_enabled", яку ми тут розібрали

  • Припустимо, що таблицю вимкнено, для використання цієї таблиці ми повинні її увімкнути за допомогою команди enable
  • Команда is_enabled перевірить, увімкнено таблицю чи ні

змінювати

Syntax: alter 
, NAME=>, VERSIONS=>5

Ця команда змінює схему сімейства стовпців. Щоб зрозуміти, що саме він робить, ми пояснили це тут на прикладі.

Приклади:

У цих прикладах ми збираємося виконувати операції зміни команд над таблицями та їх стовпцями. Ми будемо виконувати такі операції, як

  • Зміна одинарних, кількох імен сімейств
  • Видалення назв сімейств стовпців із таблиці
  • Кілька інших операцій з використанням атрибутів області з таблицею
  1. Для того, щоб змінити або додати «guru99_1» стовпець сім'ї в таблиці «освіти» від поточного значення , щоб зберегти максимум 5 ВЕРСІЙ клітин ,
  • "освіта" - це назва таблиці, створена з назвою стовпця "guru99" раніше
  • Тут за допомогою команди alter ми намагаємось змінити схему сімейства стовпців на guru99_1 з guru99

hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
  1. Ви також можете оперувати командою alter для кількох сімейств стовпців. Наприклад, ми визначимо два нові стовпці до нашої існуючої таблиці "освіта".
 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}

  • За допомогою цієї команди ми можемо одночасно змінювати кілька схем стовпців
  • guru99_2 та guru99_3, як показано на скріншоті вище, - це дві нові назви стовпців, які ми визначили для освіти таблиці
  • Ми бачимо спосіб використання цієї команди на попередньому знімку екрана
  1. На цьому кроці ми побачимо, як видалити сімейство стовпців із таблиці. Видалити сімейство стовпців 'f1' у таблиці 'освіта'.

Використовуйте одну з цих команд нижче,

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1' 
  • У цій команді ми намагаємось видалити назву простору стовпців guru99_1, яку ми раніше створили на першому кроці

  1. Як показано на знімках екрана нижче, він показує два кроки - як змінити атрибут області таблиці та як видалити атрибут області таблиці.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Крок 1) Ви можете змінити атрибути області таблиці, такі як MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH тощо. Вони можуть бути розміщені в кінці; наприклад, щоб змінити максимальний розмір області на 128 МБ або будь-яке інше значення пам'яті, яке ми використовуємо для цього команди.

Використання:

  • Ми можемо використовувати MAX_FILESIZE з таблицею як атрибут сфери, як зазначено вище
  • Число, представлене в MAX_FILESIZE, - це термін пам'яті в байтах

N ВІД: MAX_FILESIZE таблиця атрибути Обсяг буде визначатися деякі атрибути присутні в HBase. MAX_FILESIZE також потрапляє під атрибути області таблиці.

Крок 2) Ви також можете видалити атрибут table-scope, використовуючи метод table_att_unset. Якщо ви бачите команду

alter 'education', METHOD => 'table_att_unset', NAME => 'MAX_FILESIZE'
  • Наведений вище знімок екрана показує змінену назву таблиці з атрибутами області
  • Метод table_att_unset використовується для скасування атрибутів, наявних у таблиці
  • У другому випадку ми скасовуємо атрибут MAX_FILESIZE
  • Після виконання команди вона просто скасує атрибут MAX_FILESIZE з таблиці "освіта".

alter_status

 Syntax: alter_status 'education'

  • За допомогою цієї команди ви можете отримати статус команди alter
  • Що вказує на кількість регіонів таблиці, які отримали оновлену назву таблиці проходження схеми
  • Тут на знімку екрана вище показано оновлені 1/1 регіону. Це означає, що він оновив один регіон. Після цього, якщо це вдало, він відобразить зроблений коментар.

Команди обробки даних

Ці команди будуть працювати в таблиці, пов'язані з маніпуляціями з даними, такими як розміщення даних у таблиці, отримання даних із таблиці та видалення схеми тощо.

Команди потрапляють під ці

  • Рахувати
  • Покласти
  • Отримати
  • Видалити
  • Видалити все
  • Зрізати
  • Сканувати

Давайте розглянемо використання цих команд на прикладі.

Рахувати

Syntax: count <'tablename'>, CACHE =>1000
  • Команда отримає кількість рядків у таблиці. Значення, яке повертається цим числом, - це кількість рядків.
  • Поточний рахунок за замовчуванням відображається на кожні 1000 рядків.
  • Інтервал підрахунку може бути вказаний за бажанням.
  • Розмір кешу за замовчуванням - 10 рядків.
  • Команда Count працюватиме швидко, якщо її налаштовано за допомогою правильного кешу.

Приклад:

hbase> count 'guru99', CACHE=>1000

У цьому прикладі підрахунок отримує 1000 рядків за раз з таблиці "Guru99".

Ми можемо зробити кеш певним нижчим значенням, якщо таблиця складається з більшої кількості рядків.

Але за замовчуванням він отримує по одному рядку за раз.

hbase>count 'guru99', INTERVAL => 100000hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000

Якщо припустимо, якщо таблиця "Guru99" має посилання на таблицю, наприклад, скажіть g.

Ми можемо запустити команду count на посилання на таблицю, як і нижче

hbase>g.count INTERVAL=>100000hbase>g.count INTERVAL=>10, CACHE=>1000

Покласти

Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Ця команда використовується для наступних речей

  • Він помістить "значення" комірки у визначену або вказану таблицю, рядок чи стовпець.
  • Він додатково координуватиме позначку часу.

Приклад:

  • Тут ми розміщуємо значення в таблиці "guru99" під рядком r1 і стовпцем c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Ми помістили три значення, 10,15 та 30 у таблиці "guru99", як показано на скріншоті нижче

  • Припустимо, якщо таблиця "Guru99" має посилання на таблицю, наприклад, скажімо g. Ми також можемо запустити команду на посилання на таблицю

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Результат буде таким, як показано на наведеному вище знімку екрана після розміщення значень у "guru99".

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

Фрагмент коду: для практики

create 'guru99', {NAME=>'Edu', VERSIONS=>213423443}put 'guru99', 'r1', 'Edu:c1', 'value', 10put 'guru99', 'r1', 'Edu:c1', 'value', 15put 'guru99', 'r1', 'Edu:c1', 'value', 30

З фрагмента коду ми робимо ці речі

  • Тут ми створюємо таблицю з назвою 'guru99' з назвою стовпця "Edu".
  • За допомогою команди "put" ми поміщаємо значення в ім'я рядка r1 у стовпці "Edu" у таблицю "guru99".

Отримати

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Тут <Додаткові параметри> включають TIMERANGE, TIMESTAMP, VERSIONS та FILTERS.

За допомогою цієї команди ви отримаєте вміст рядка або комірки, присутній у таблиці. На додаток до цього ви також можете додати до нього додаткові параметри, такі як TIMESTAMP, TIMERANGE, VERSIONS, FILTERS тощо, щоб отримати певний вміст рядка або комірки.

Приклади: -

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Для таблиці "guru99 'значення рядка r1 і стовпця c1 відображатимуться за допомогою цієї команди, як показано на малюнку вище

hbase> get 'guru99', 'r1'

Для таблиці "guru99" значення r1 відображатимуться за допомогою цієї команди

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Для таблиці "guru99" значення рядка 1 у часовому діапазоні ts1 і ts2 відображатимуться за допомогою цієї команди

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Для таблиці "guru99" за допомогою цієї команди відображатимуться значення c1, c2, c3 сімейств рядків r1 та стовпців

Видалити

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Ця команда видалить значення комірки у визначеній таблиці рядка або стовпця.
  • Видалити потрібно і повинно точно відповідати координатам видалених комірок.
  • Під час сканування видалити комірку придушує старіші версії значень.

Приклад:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''. 
  • Вищевказане виконання видалить рядок r1 із сімейства стовпців c1 таблиці "guru99".
  • Припустимо, якщо таблиця "guru99" має посилання на таблицю, наприклад, скажімо g.
  • Ми можемо запустити команду на посилання на таблицю, як hbase> g.delete 'guru99', 'r1', 'c1' ".

видалити все

Syntax: deleteall <'tablename'>, <'rowname'>

  • Ця команда видалить усі клітинки в заданому рядку.
  • Ми можемо визначити додатково імена стовпців та позначку часу для синтаксису.

Приклад: -

hbase>deleteall 'guru99', 'r1', 'c1'

Буде видалено всі рядки та стовпці, наявні в таблиці. За бажанням ми можемо вказати в цьому імена стовпців.

Зрізати

Syntax: truncate 

Після усічення таблиці hbase схема представлятиме, але не записи. Ця команда виконує 3 функції; перелічені нижче

  • Вимикає таблицю, якщо вона вже представлена
  • Скидає таблицю, якщо вона вже представлена
  • Відтворює згадану таблицю

Сканувати

Syntax: scan <'tablename'>, {Optional parameters}

Ця команда сканує всю таблицю та відображає вміст таблиці.

  • Ми можемо передати кілька необов’язкових специфікацій цій команді сканування, щоб отримати більше інформації про таблиці, присутні в системі.
  • Технічні характеристики сканера можуть містити один або кілька з наступних атрибутів.
  • Це TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW і STOPROW.
scan 'guru99' 

Вихідні дані, як показано нижче, показані на знімку екрана

На наведеному вище знімку екрана

  • Він показує таблицю "guru99" із назвою стовпця та значеннями
  • Він складається з трьох значень рядків r1, r2, r3 для значення одного стовпця c1
  • Він відображає значення, пов'язані з рядками

Приклади: -

Різне використання команди сканування

Команда

Використання

сканувати '.META.', {COLUMNS => 'info: regioninfo'}

Він відображає всю інформацію про метадані, пов’язану зі стовпцями, які є в таблицях у HBase

сканувати 'guru99', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}

Він відображає вміст таблиці guru99 з їх сімействами стовпців c1 та c2, обмежуючи значення до 10

сканувати 'guru99', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}

Він відображає вміст guru99 із назвою стовпця c1 із значеннями, присутніми між згаданим значенням атрибута діапазону часу

сканувати 'guru99', {RAW => true, VERSIONS => 10}

У цій команді RAW => true надає розширену функцію, подібну до відображення всіх значень комірок, присутніх у таблиці guru99

Приклад коду:

Спочатку створіть таблицю і помістіть значення в таблицю

create 'guru99', {NAME=>'e', VERSIONS=>2147483647}put 'guru99', 'r1', 'e:c1', 'value', 10put 'guru99', 'r1', 'e:c1', 'value', 12put 'guru99', 'r1', 'e:c1', 'value', 14delete 'guru99', 'r1', 'e:c1', 11

Знімок екрана вводу:

Якщо ми запускаємо команду сканування

Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}

Він буде відображати вихідні дані, показані нижче.

Вихідний знімок екрана:

Висновок, показаний на знімку екрана, надає наступну інформацію

  • Сканування таблиці guru99 з атрибутами RAW => true, VERSIONS => 1000
  • Відображення рядків із сімействами стовпців та значеннями
  • У третьому рядку відображаються значення показують видалене значення, наявне в стовпці
  • Виведений ним результат є випадковим; це не може бути того самого порядку, що і значення, які ми вставили в таблицю

Команди кластерної реплікації

  • Ці команди працюють у режимі налаштування кластера HBase.
  • Для додавання та видалення однолітків у кластер та для запуску та зупинки реплікації ці команди використовуються загалом.

Команда

Функціональність

add_peer

Додайте однолітки до кластера для реплікації

hbase> add_peer '3', zk1, zk2, zk3: 2182: / hbase-prod

remove_peer

Зупиняє визначений потік реплікації.

Видаляє всю інформацію про метадані про аналога

hbase> remove_peer '1'

start_replication

Перезапускає всі функції реплікації

hbase> start_replication

зупинити_реплікацію

Зупиняє всі функції реплікації

hbase> зупинити_реплікацію

Короткий зміст :

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