Команди оболонки HBase з прикладами
Після успішної інсталяції 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 та Юнекс операційні розподіли
- Розширені версії HBase надають об’єктно-орієнтовані посилання на команди оболонки у стилі jruby для таблиць
- Довідкові змінні таблиці можна використовувати для виконання операцій з даними в режимі оболонки HBase
Для прикладів,
- У цьому посібнику ми створили таблицю, у якій «освіта» представляє назву таблиці та відповідає назві стовпця «guru99».
- У деяких командах «guru99» представляє назву таблиці.
Загальні команди
У Hbase загальні команди поділяються на такі команди
- Статус
- версія
- Table_help (сканувати, скинути, отримати, поставити, вимкнути тощо)
- Хто я
Щоб отримати доступ до команди оболонки HBase, перш за все, ми повинні виконати код, як зазначено нижче
hbase Shell
Після входу в оболонку HBase ми можемо виконати всі наведені нижче команди оболонки. За допомогою цих команд ми можемо виконувати всі типи операцій з таблицями в режимі оболонки HBase.
Давайте розглянемо всі ці команди та їх використання одну за одною на прикладі.
Статус
Syntax:status
Ця команда надасть інформацію про стан системи, як-от кількість серверів у кластері, кількість активних серверів і середнє значення навантаження. Ви також можете передати будь-які конкретні параметри залежно від того, наскільки докладний статус ви хочете знати про систему. Параметри можуть бути «резюме», «простий» або «детальний», параметром за замовчуванням є «підсумок».
Нижче ми показали, як можна передавати різні параметри в команду status.
Якщо ми розглянемо наведений нижче знімок екрана, ми отримаємо краще уявлення.
hbase(main):001:0>status hbase(main):002:0>status 'simple' hbase(main):003:0>status 'summary' hbase(main):004:0> status 'detailed'
Коли ми виконаємо статус цієї команди, вона надасть інформацію про кількість наявних серверів, непрацюючих серверів і середнє завантаження сервера, тут на знімку екрана показано таку інформацію, як- 1 живий сервер, 1 непрацюючий сервер і 7.0000 середнє навантаження.
версія
Syntax: version
- Ця команда відобразить поточну версію HBase у командному режимі
- Якщо ви запустите команду version, вона видасть результат, як показано вище
Таблиця довідки
Syntax:table_help
Ця команда керує
- Що і як використовувати команди з посиланням на таблицю
- Він забезпечить різні способи використання команд оболонки HBase та їх синтаксис
- Тут, на знімку екрана вище, показано синтаксис «створити" і "get_table” команду з її використанням. Ми можемо керувати таблицею за допомогою цих команд, коли таблицю буде створено в HBase.
- Він надасть команди маніпулювання таблицею, такі як put, get та всю іншу інформацію про команди.
Whoami
Синтаксис:
Syntax: Whoami
Ця команда «whoami» використовується для повернення поточної інформації про користувача HBase з кластера HBase.
Він надасть інформацію, як
- Групи присутні в HBase
- Інформація про користувача, наприклад, у цьому випадку «hduser», представляє ім’я користувача, як показано на знімку екрана
TTL (Time To Live) – Атрибут
У HBase для сімейств стовпців можна встановити значення часу в секундах за допомогою TTL. HBase автоматично видалить рядки, коли закінчиться час дії. Цей атрибут застосовується до всіх версій рядка – навіть до поточної версії.
Час TTL, закодований у HBase для рядка, вказується у UTC. Цей атрибут використовується з командами керування таблицею.
Нижче наведено важливі відмінності між обробкою TTL і TTL сімейства стовпців
- TTL клітинки виражаються в одиницях мілісекунд замість секунд.
- TTL комірки не може подовжити ефективний термін служби комірки за межі налаштування TTL на рівні сімейства стовпців.
Команди керування таблицями
Ці команди дозволять програмістам створювати таблиці та схеми таблиць із сімействами рядків і стовпців.
Нижче наведено команди керування таблицею
- Створити
- список
- Описувати
- Забороняти
- Відключити все
- включити
- Enable_all
- Падіння
- Викинути_все
- Показати_фільтри
- Вік
- Змінити_статус
Давайте розглянемо на прикладі використання різних команд у HBase.
Створити
Syntax: create <tablename>, <columnfamilyname>
Приклад:-
hbase(main):001:0> create 'education' ,'guru99' 0 rows(s) in 0.312 seconds =>Hbase::Table – education
У наведеному вище прикладі пояснюється, як створити таблицю в HBase із зазначеним іменем відповідно до словника або специфікацій відповідно до сімейства стовпців. На додаток до цього ми також можемо передати в нього деякі атрибути області видимості таблиці.
Щоб перевірити, чи створено таблицю 'education' чи ні, ми повинні використовувати «список» команду, як зазначено нижче.
список
Syntax:list
- Команда «Список» покаже всі таблиці, які присутні або створені в HBase
- Результат, показаний на знімку екрана вище, наразі показує існуючі таблиці в HBase
- На цьому скріншоті показано, що всередині HBase є загалом 8 таблиць
- Ми можемо фільтрувати вихідні значення з таблиць, передаючи додаткові параметри регулярного виразу
Описувати
Syntax:describe <table name>
hbase(main):010:0>describe 'education'
Ця команда описує іменовану таблицю.
- Це надасть більше інформації про сімейства стовпців у згаданій таблиці
- У нашому випадку це дає опис таблиці «освіта».
- Він надасть інформацію про назву таблиці з сімействами стовпців, пов’язані фільтри, версії та деякі інші деталі.
забороняти
Syntax: disable <tablename>
hbase(main):011:0>disable 'education'
- Ця команда почне відключати названу таблицю
- Якщо таблицю потрібно видалити або видалити, її потрібно спочатку вимкнути
Тут, на наведеному вище скріншоті, ми вимикаємо навчання таблиць
відключити все
Syntax: disable_all<"matching regex"
- Ця команда вимкне всі таблиці, які відповідають даному регулярному виразу.
- Реалізація така ж, як команда видалення (за винятком додавання регулярного виразу для відповідності)
- Після вимкнення таблиці користувач зможе видалити її з HBase
- Перш ніж видаляти або видаляти таблицю, її слід вимкнути
включити
Syntax: enable <tablename>
hbase(main):012:0>enable 'education'
- Ця команда почне активацію іменованої таблиці
- Незалежно від того, яку таблицю вимкнено, ми використовуємо цю команду для повернення до попереднього стану
- Якщо таблицю спочатку вимкнено, а не видалено чи скинуто, і якщо ми хочемо повторно використати вимкнену таблицю, ми маємо ввімкнути її за допомогою цієї команди.
- Тут, на скріншоті вище, ми вмикаємо таблицю «освіта».
show_filters
Syntax: show_filters
Ця команда відображає всі фільтри, наявні в HBase, наприклад ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter тощо.
падіння
Syntax:drop <table name>
hbase(main):017:0>drop 'education'
Ми повинні дотримуватися наведених нижче пунктів для команди скидання
- Щоб видалити таблицю, наявну в 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 <tablename>, NAME=><column familyname>, VERSIONS=>5
Ця команда змінює схему сімейства стовпців. Щоб зрозуміти, що саме він робить, ми пояснили це на прикладі.
Приклади:
У цих прикладах ми збираємося виконувати командні операції alter над таблицями та їх стовпцями. Ми будемо виконувати такі операції
- Зміна назв родин одного або кількох стовпців
- Видалення назв сімейства стовпців із таблиці
- Кілька інших операцій із використанням атрибутів області дії з таблицею
- Щоб змінити або додати сімейство стовпців "guru99_1" у таблиці "освіта" з поточного значення, щоб зберегти максимум 5 клітинок ВЕРСІЇ,
- «education» — це назва таблиці, створена раніше з іменем стовпця «guru99».
- Тут за допомогою команди alter ми намагаємося змінити схему сімейства стовпців на guru99_1 з guru99
hbase> alter 'education', NAME='guru99_1', VERSIONS=>5
- Ви також можете використовувати команду alter для кількох сімейств стовпців. Наприклад, ми визначимо два нових стовпці до нашої існуючої таблиці «освіта».
hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
- За допомогою цієї команди ми можемо змінити більше ніж одну схему стовпців одночасно
- guru99_2 і guru99_3, як показано на знімку екрана вище, це дві нові назви стовпців, які ми визначили для навчальної таблиці
- Ми бачимо спосіб використання цієї команди на попередньому знімку екрана
- На цьому кроці ми побачимо, як видалити сімейство стовпців із таблиці. Щоб видалити сімейство стовпців «f1» у таблиці «освіта».
Використовуйте одну з цих команд нижче,
hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'
- У цій команді ми намагаємося видалити назву простору стовпців guru99_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_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 рядків.
- Команда підрахунку працюватиме швидко, якщо її налаштовано з правим кешуванням.
приклад:
hbase> count 'guru99', CACHE=>1000
Цей приклад підрахунку отримує 1000 рядків за раз із таблиці «Guru99».
Ми можемо зробити кеш деяким нижчим значенням, якщо таблиця складається з більшої кількості рядків.
Але за замовчуванням він отримуватиме по одному рядку.
hbase>count 'guru99', INTERVAL => 100000 hbase> count 'guru99', INTERVAL =>10, CACHE=> 1000
Якщо припустити, що таблиця “Guru99” має деяке посилання на таблицю, наприклад g.
Ми можемо виконати команду count для посилання на таблицю також, як показано нижче
hbase>g.count INTERVAL=>100000 hbase>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 і 99 у таблиці «guruXNUMX», як показано на знімку екрана нижче
- Припустімо, якщо таблиця “Guru99” має деяке посилання на таблицю, наприклад g. Ми також можемо виконати команду для посилання на таблицю
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Після розміщення значень у «guru99» результат буде таким, як показано на знімку екрана вище.
Щоб перевірити, чи правильно введене значення вставлено в таблицю, ми використовуємо команду «сканувати». На знімку екрана нижче ми бачимо, що значення вставлено правильно
Фрагмент коду: для практики
create 'guru99', {NAME=>'Edu', VERSIONS=>213423443} put 'guru99', 'r1', 'Edu:c1', 'value', 10 put 'guru99', 'r1', 'Edu:c1', 'value', 15 put '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” рядок r1 і значення c1, c2, c3 сімейств стовпців відображатимуться за допомогою цієї команди
видаляти
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 <tablename>
Після скорочення таблиці hbase відображатиметься схема, але не відображатимуться записи. Ця команда виконує 3 функції; вони перераховані нижче
- Вимикає таблицю, якщо вона вже представлена
- Відкидає таблицю, якщо вона вже представлена
- Відтворює згадану табл
сканування
Syntax: scan <'tablename'>, {Optional parameters}
Ця команда сканує всю таблицю та відображає її вміст.
- Ми можемо передати кілька додаткових специфікацій цій команді сканування, щоб отримати більше інформації про таблиці, присутні в системі.
- Технічні характеристики сканера можуть містити один або кілька з наведених нижче атрибутів.
- Це TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW і STOPROW.
scan 'guru99'
Результат, як показано на знімку екрана
На знімку екрана вище
- Він показує таблицю «guru99» із назвою стовпця та значеннями
- Він складається з трьох значень рядка r1, r2, r3 для значення одного стовпця c1
- Він відображає значення, пов’язані з рядками
Приклади: -
Різні способи використання команди сканування
Command | Використання |
---|---|
сканувати '.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 => правда, ВЕРСІЇ =>10} | У цій команді RAW=> true забезпечує розширену функцію, як-от відображення всіх значень комірок у таблиці guru99 |
Приклад коду:
Спочатку створіть таблицю та помістіть у неї значення
create 'guru99', {NAME=>'e', VERSIONS=>2147483647} put 'guru99', 'r1', 'e:c1', 'value', 10 put 'guru99', 'r1', 'e:c1', 'value', 12 put 'guru99', 'r1', 'e:c1', 'value', 14 delete 'guru99', 'r1', 'e:c1', 11
Вхідний знімок екрана:
Якщо ми запустимо команду сканування
Query: scan 'guru99', {RAW=>true, VERSIONS=>1000}
Він відобразить результат, показаний нижче.
Вихідний знімок екрана:
Результат, показаний на знімку екрана вище, дає наступну інформацію
- Сканування таблиці guru99 з атрибутами RAW=>true, VERSIONS=>1000
- Відображення рядків із сімействами стовпців і значеннями
- У третьому рядку відображені значення показують видалене значення, наявне в стовпці
- Результати, які він відображає, є випадковими; це не може бути таким же порядком, як значення, які ми вставили в таблицю
Cluster Команди реплікації
- Ці команди працюють у режимі налаштування кластера HBase.
- Ці команди зазвичай використовуються для додавання та видалення однорангових вузлів у кластері, а також для запуску та зупинки реплікації.
Command | Функціональність |
---|---|
add_peer | Додайте однорангові вузли в кластер для реплікації
hbase> add_peer '3', zk1,zk2,zk3:2182:/hbase-prod |
remove_peer | Зупиняє визначений потік реплікації.
Видаляє всю інформацію про метадані однорангового пристрою hbase> remove_peer '1' |
початок_реплікації | Перезапускає всі функції реплікації
hbase> start_replication |
stop_replication | Зупиняє всі функції реплікації
hbase>stop_replication |
Підсумки
Команди оболонки HBase та загальні команди надають повну інформацію про різні типи маніпулювання даними, керування таблицями та команди реплікації кластера. Ми можемо виконувати різні функції за допомогою цих команд у таблицях, присутніх у HBase.