Команди на HBase Shell с примери

⚡ Умно обобщение

Командите на HBase shell ви позволяват да управлявате таблици и данни директно от интерактивен команден ред, групирани в общи команди, команди за управление на таблици като create и drop, команди за манипулиране на данни като put и get и команди за репликация на клъстери.

  • Общи команди: status, version, table_help и whoami отчитат състоянието на клъстера и информация за потребителя.
  • 🗂️ Управление на таблици: създаване, изброяване, описание, деактивиране, активиране, премахване и промяна, изграждане и преоформяне на таблици.
  • Манипулиране на данни: поставяне, получаване, изтриване, изтриване на всички, отрязване, броене и сканиране на четене и запис на стойности в клетки.
  • 🔁 Cluster репликация: add_peer, remove_peer, start_replication и stop_replication управляват репликацията на данни.
  • Атрибут TTL: „Време за живот“ изтича автоматично за редовете от семействата колони след зададен брой секунди.
  • 🤖 Помощ от изкуствен интелект: Асистентите с изкуствен интелект генерират и обясняват команди на HBase shell от подкани на разбираем език.

Команди на HBase shell с примери за таблици, данни и репликация на клъстери

Как да взаимодействате с HBase, използвайки команди на Shell Java API

След успешна инсталация на HBase върху Hadoop, получаваме интерактивна обвивка за изпълнение на различни команди и извършване на редица операции. Използвайки тези команди, можем да извършваме множество операции върху таблици с данни, което осигурява по-добра ефективност на съхранението на данни и гъвкаво взаимодействие за клиента.

Можем да взаимодействаме с HBase по два начина:

  • Интерактивен режим на обвивката на HBase и
  • През Java API.

В HBase, интерактивният режим на обвивка се използва за взаимодействие с HBase за таблични операции, управление на таблици и моделиране на данни. Java API модел, можем да извършваме всички видове операции с таблици и данни в HBase. Можем да взаимодействаме с HBase, използвайки и двата метода. Единствената разлика между двата е, че Java Употреби на API Java код за свързване с HBase, докато режимът на shell използва команди на shell за свързване с HBase.

Бърз преглед на HBase, преди да продължим:

  • HBase използва Hadoop файлове като система за съхранение на големи количества данни. HBase се състои от главни сървъри и регионални сървъри.
  • Данните, които ще се съхраняват в HBase, ще бъдат под формата на региони. Освен това, тези региони ще бъдат разделени и съхранени на множество регионални сървъри.
  • Тези команди на shell позволяват на програмиста да дефинира схеми на таблици и операции с данни, използвайки пълно взаимодействие в режим на shell.
  • Която и команда да използваме, тя ще се отрази в модела на данните на HBase.
  • Използваме HBase shell команди в интерпретатори на скриптове на операционната система, като например Bash shell.
  • Bash shell е командният интерпретатор по подразбиране за повечето Linux и дистрибуции на операционни системи Unix.
  • Разширените версии на HBase предоставят команди на обвивката с обектно-ориентирани препратки за таблици в стил JRuby.
  • Променливите за справка с таблици могат да се използват за извършване на операции с данни в режим на обвивка на HBase.

Например:

  • В този урок създадохме таблица, в която „education“ представлява името на таблицата и съответства на името на колоната „guru99“.
  • В някои команди, „guru99“ само по себе си представлява име на таблица.

Общи команди

В HBase общите команди са категоризирани в следните команди:

  • Статус
  • версия
  • Table_help (сканиране, пускане, получаване, поставяне, деактивиране и т.н.)
  • Кой съм аз

За да влезем в командата на HBase shell, първо трябва да изпълним кода, както е посочено по-долу.

hbase Shell

След като влезем в HBase shell, можем да изпълним всички команди, споменати по-долу. С помощта на тези команди можем да извършваме всички видове таблични операции в режим на HBase shell. Интерактивният команден ред се появява, както е показано по-долу:

Интерактивният подкаст на HBase, отворен с командата hbase shell

Нека разгледаме всички тези команди и тяхното използване една по една с пример.

Статус

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'

Изходът за състоянието е показан по-долу:

Изходът на командата за състояние на обвивката на HBase, показващ активни сървъри, неактивни сървъри и средно натоварване

Когато изпълним тази команда за състояние, тя дава информация за броя на наличните сървъри, неработещите сървъри и средното натоварване на сървъра. Тук екранната снимка показва информация като 1 работещ сървър, 1 неработещ сървър и средно натоварване от 7.0000.

версия

Syntax: version

Изходът на версията е показан по-долу:

Команда за версия на HBase shell, показваща инсталираната версия на HBase

  • Тази команда ще покаже текущо използваната версия на HBase в команден режим.
  • Ако изпълните командата version, тя ще даде резултат, както е показано по-горе.

Помощ за таблица

Syntax:table_help

Изходът на table_help е показан по-долу:

Изходният списък на table_help в HBase shell използва командите create и get_table

Тази команда насочва:

  • Какво представляват командите, препратени към таблици, и как да ги използваме.
  • Ще предостави различни начини за използване на команди на HBase shell и техния синтаксис.
  • Тук, на екранната снимка по-горе, е показан синтаксисът на командите „create“ и „get_table“ с тяхното използване. Можем да манипулираме таблицата чрез тези команди, след като тя бъде създадена в HBase.
  • Той ще дава команди за манипулиране на таблици като put, get и всякаква друга информация за командите.

Whoami

Syntax: Whoami

Изходът на whoami е показан по-долу:

Командата whoami на HBase shell връща текущия hduser и групи

Командата „whoami“ се използва за връщане на текущата информация за потребителя на HBase от клъстера HBase. Тя ще предостави информация като:

  • Групи, присъстващи в HBase.
  • Информацията за потребителя; например, в този случай „hduser“ представлява потребителското име, както е показано на екранната снимка.

TTL (Time To Live) – Атрибут

В HBase, семействата колони могат да бъдат зададени на времеви стойности в секунди, използвайки TTL. HBase автоматично ще изтрие редове, след като се достигне времето на изтичане. Този атрибут се отнася за всички версии на ред, дори за текущата версия.

TTL времето, кодирано в HBase за реда, е посочено в UTC. Този атрибут се използва с команди за управление на таблици. Важни разлики между обработката на TTL и TTL-тата за семейство колони са посочени по-долу:

  • TTL на клетката се изразяват в единици милисекунди вместо секунди.
  • TTL на клетката не може да удължи ефективния живот на клетката отвъд настройката на TTL на ниво семейство колони.

Команди за управление на таблици

Тези команди ще позволят на програмистите да създават таблици и схеми на таблици със семейства от редове и колони. Следните команди са командите за управление на таблици:

  • Създаване на
  • списък
  • Описвам
  • Правя неспособен
  • Деактивиране_всички
  • Разреши
  • Enable_all
  • Спад
  • Drop_all
  • Покажи_филтри
  • Възраст
  • Промяна_състояние

Нека разгледаме различните употреби на команди в HBase с един пример.

Създаване на

Syntax: create <tablename>, <columnfamilyname>

Пример:-

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

Резултатът от командата create е показан по-долу:

Команда за създаване на HBase shell, изграждаща таблицата education със семейството колони guru99

Горният пример обяснява как да се създаде таблица в HBase с посоченото име, дадено съгласно спецификациите за всяко семейство колони. В допълнение към това, можем да ѝ предадем и някои атрибути за обхват на таблицата. За да проверим дали таблицата „education“ е създадена или не, използваме командата „list“ по-долу. Вижте също създаване на HBase таблици с Java и черупка.

списък

Syntax:list

Изходът от списъка е показан по-долу:

Команда за списък с обвивки на HBase, показваща осем съществуващи таблици в HBase

  • Командата „list“ ще покаже всички таблици, които са налични или създадени в HBase.
  • Резултатът, показан на горната екранна снимка, в момента показва съществуващите таблици в HBase.
  • Тук, на тази екранна снимка, се вижда, че в HBase има общо 8 таблици.
  • Можем да филтрираме изходните стойности от таблиците, като им подадем незадължителни параметри на регулярни изрази.

Описвам

Syntax:describe <table name>
hbase(main):010:0>describe 'education'

Изходът от описанието е показан по-долу:

HBase shell описва изхода на командата, като детайлизира семействата колони от таблицата за образование

Тази команда описва наименуваната таблица.

  • Това ще даде повече информация за семействата колони, присъстващи в споменатата таблица.
  • В нашия случай, това дава описанието на таблицата „образование“.
  • Ще предостави информация за името на таблицата със семейства колони, свързани филтри, версии и някои други подробности.

правя неспособен

Syntax: disable <tablename>
hbase(main):011:0>disable 'education'

Изходът за деактивиране е показан по-долу:

Командата за деактивиране на HBase shell извежда образователната таблица офлайн

  • Тази команда ще започне деактивирането на посочената таблица.
  • Ако дадена таблица трябва да бъде изтрита или премахната, първо тя трябва да бъде деактивирана.

Тук, на горната екранна снимка, деактивираме обучението по таблица.

забрани_всички

 Syntax: disable_all<"matching regex"
  • Тази команда ще деактивира всички таблици, съответстващи на дадения регулярен израз.
  • Имплементацията е същата като на командата drop (с изключение на добавянето на регулярен израз за съвпадение).
  • След като таблицата бъде деактивирана, потребителят може да я изтрие от HBase.
  • Преди изтриване или пусканеping таблица, първо трябва да се деактивира.

Разреши

Syntax: enable <tablename>
hbase(main):012:0>enable 'education'

Изходът за активиране е показан по-долу:

Командата за активиране на HBase shell реактивира деактивираната образователна таблица

  • Тази команда ще започне да активира посочената таблица.
  • Която и таблица да е деактивирана, за да я върнем в предишното ѝ състояние, използваме тази команда.
  • Ако дадена таблица е деактивирана първоначално и не е изтрита или премахната, и ако искаме да използваме повторно деактивираната таблица, тогава трябва да я активираме, като използваме тази команда.
  • Тук, на горната екранна снимка, активираме таблицата „образование“.

показване на филтри

Syntax: show_filters

Изходът на show_filters е показан по-долу:

Изброяване на наличните HBase филтри от show_filters на HBase shell

Тази команда показва всички филтри, налични в HBase, като ColumnPrefixFilter, TimestampsFilter, PageFilter, FamilyFilter и др.

спад

Syntax:drop <table name>
hbase(main):017:0>drop 'education'

Изходът на капката е показан по-долу:

Команда за изтриване на деактивираната образователна таблица чрез HBase shell

Трябва да спазваме следните точки за командата drop:

  • За да изтрием таблицата, налична в HBase, първо трябва да я деактивираме.
  • За да премахнем таблицата, налична в HBase, първо трябва да я деактивираме.
  • Така че, за да премахнете или изтриете таблица, първо таблицата трябва да бъде деактивирана с помощта на командата disable.
  • Тук, на горната екранна снимка, ние сме пуснатиping таблицата „образование“.
  • Преди изпълнението на тази команда е необходимо да деактивирате таблицата „education“.

drop_all

Syntax: drop_all<"regex">
  • Тази команда ще премахне всички таблици, съответстващи на дадения регекс.
  • Таблиците трябва първо да бъдат деактивирани, преди да се изпълни тази команда, използвайки disable_all.
  • Таблици с изрази, съответстващи на регулярни изрази, ще бъдат премахнати от HBase.

е_разрешено

Syntax: is_enabled 'education'

Тази команда ще провери дали посочената таблица е активирана или не. Обикновено има малко объркване между действията на командите „enable“ и „is_enabled“, което ще изясним тук:

  • Да предположим, че една таблица е деактивирана; за да използваме тази таблица, трябва да я активираме, като използваме командата enable.
  • Командата is_enabled ще провери дали таблицата е активирана или не.

променя

Syntax: alter <tablename>, NAME=><column familyname>, VERSIONS=>5

Тази команда променя схемата на семейството на колоните. За да разберете какво точно прави, тук сме го обяснили с пример.

Примери: В тези примери ще извършим операции с командата alter върху таблици и техните колони. Ще извършим операции като:

  • Промяна на имената на семейства с една и няколко колони.
  • Изтриване на имена на семейства колони от таблица.
  • Няколко други операции, използващи атрибути на обхват с таблица.

За да промените или добавите семейството колони „guru99_1“ в таблица „education“ от текущата стойност, за да запазите максимум 5 клетки VERSIONS. Тук „education“ е името на таблицата, създадена с името на колоната „guru99“ преди това. С помощта на командата alter се опитваме да променим схемата на семейството колони на guru99_1 от guru99, както е показано по-долу:

Командата за промяна на HBase shell променя семейството колони в таблицата за образование на guru99_1

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

Можете също така да използвате командата alter и за няколко семейства колони. Например, ще дефинираме две нови колони за съществуващата ни таблица „образование“, както е показано по-долу:

Командата за промяна на HBase shell добавя две нови семейства колони guru99_2 и guru99_3

 hbase> alter 'edu', 'guru99_1', {NAME => 'guru99_2', IN_MEMORY => true}, {NAME => 'guru99_3', VERSIONS => 5}
  • Можем да променяме повече от една схема на колони едновременно, използвайки тази команда.
  • guru99_2 и guru99_3, както е показано на екранната снимка по-горе, са двете нови имена на колони, които сме дефинирали за таблицата education.
  • Можем да видим начина на използване на тази команда на предишната екранна снимка.

В тази стъпка ще видим как да изтрием семейство колони от таблицата. За да изтриете семейството колони „f1“ в таблица „education“, използвайте една от командите по-долу. Резултатът е показан на екранната снимка по-долу:

Команда за промяна на HBase shell изтрива семейство колони от таблицата за образование

hbase> alter 'education', NAME => 'f1', METHOD => 'delete'
hbase> alter 'education', 'delete' =>' guru99_1'

В тази команда се опитваме да изтрием колонното пространство с име guru99_1, което създадохме в първата стъпка. Както е показано на екранните снимки по-долу, са показани две стъпки: как да промените атрибута на обхвата на таблицата и как да го премахнете.

Командата за промяна на HBase shell задава атрибута MAX_FILESIZE за табличен обхват

Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

Стъпка 1) Можете да промените атрибутите на табличния обхват, като MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH и др. Те могат да бъдат поставени в края; например, за да променим максималния размер на регион на 128MB или друга стойност на паметта, използваме тази команда.

Начин на употреба:

  • Можем да използваме MAX_FILESIZE с таблицата като атрибут на обхват, както по-горе.
  • Числото, представено в MAX_FILESIZE, е изразено в памет в байтове.

ЗАБЕЛЕЖКА: Обхватът на таблицата 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 от таблицата „education“.

промяна_статус

 Syntax: alter_status 'education'

Изходът на alter_status е показан по-долу:

Командата alter_status на HBase shell показва един от актуализираните региони

  • Чрез тази команда можете да получите състоянието на командата alter.
  • Показва броя на регионите на таблицата, които са получили актуализираната схема. Вие предавате името на таблицата.
  • Тук, на горната екранна снимка, се показва, че са актуализирани 1/1 региона. Това означава, че е актуализиран един регион. След това, ако е успешно, ще се покаже коментарът „готово“.

Команди за манипулиране на данни

Тези команди работят с таблицата за манипулиране на данни, като например поставяне на данни в таблица, извличане на данни от таблица и изтриване на схема и др. Командите, които попадат под тях, са:

  • Броя
  • Слагам
  • Обратна
  • Изтрий
  • Изтриване на всички
  • пресечен
  • Сканиране

Нека разгледаме тези употреби на команди с пример. Вижте също четене и запис на HBase данни.

Броя

Syntax: count <'tablename'>, CACHE =>1000
  • Командата ще извлече броя на редовете в таблица. Върнатата от нея стойност е броят на редовете.
  • Текущият брой се показва по подразбиране на всеки 1000 реда.
  • Интервалът на броене може да бъде зададен по избор.
  • Размерът на кеша по подразбиране е 10 реда.
  • Командата count ще работи бързо, когато е конфигурирана с правилния кеш.

Пример:

hbase> count 'guru99', CACHE=>1000

Изходът от брояча е показан по-долу:

Командата HBase shell count връща броя на редовете в таблицата guru99

Този примерен брой извлича по 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, в таблица „guru99“, както е показано на екранната снимка по-долу.

Командата put на HBase shell вмъква стойности 10, 15 и 30 в таблицата guru99

Да предположим, че таблицата „guru99“ има някаква препратка към таблицата, например g. Можем също да изпълним командата върху препратката към таблицата, като:

hbase> g.put 'guru99', 'r1', 'c1', 'value', 10

Резултатът ще бъде както е показано на горната екранна снимка след въвеждане на стойности в „guru99“. За да проверим дали входната стойност е правилно въведена в таблицата, използваме командата „scan“. На екранната снимка по-долу можем да видим, че стойностите са въведени правилно.

Изход от сканиране на HBase shell, потвърждаващ стойностите, вмъкнати в таблицата guru99

Code Откъс: За практика

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 и др., за да получите съдържанието на конкретен ред или клетка.

Изходът get по-долу връща стойности на ред r1 и колона c1:

HBase shell get команда, връщаща ред r1 и колона c1 от таблицата guru99

Примери:-

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

За таблица „guru99“, стойностите на ред r1 и колона c1 ще се покажат с помощта на тази команда, както е показано на екранната снимка по-горе.

hbase> get 'guru99', 'r1'

За таблица „guru99“, стойностите на ред r1 ще бъдат показани с помощта на тази команда.

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

За таблица „guru99“, стойностите на ред r1 във времевия диапазон ts1 до ts2 ще бъдат показани с помощта на тази команда.

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

За таблица „guru99“, стойностите на ред r1 и семейства колони c1, c2 и c3 ще бъдат показани с помощта на тази команда.

Изтрий

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Тази команда ще изтрие стойността на клетката в определена таблица от ред или колона.
  • Изтриването трябва и трябва да съвпада точно с координатите на изтритата клетка.
  • При сканиране, клетка за изтриване потиска по-стари версии на стойностите.

Пример: Командата за изтриване по-долу премахва клетки r1, c1 от таблицата guru99:

Команда за изтриване на HBase shell премахва клетка r1 c1 от таблицата guru99

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''.
  • Горното изпълнение ще изтрие ред r1 от семейство колони c1 в таблица „guru99“.
  • Да предположим, че таблицата „guru99“ има някаква таблична препратка, например g.
  • Можем да изпълним командата и върху таблицата с референции, като например hbase> g.delete 'guru99', 'r1', 'c1′”.

изтрий всички

Syntax: deleteall <'tablename'>, <'rowname'>
  • Тази команда ще изтрие всички клетки в даден ред.
  • По желание можем да дефинираме имена на колони и времеви печат в синтаксиса.

Пример: Командата deleteall по-долу премахва всяка клетка в ред r1:

Командата за deleteall на HBase shell премахва всички клетки в ред r1 на таблицата guru99

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

Това ще изтрие всички редове и колони в таблицата. По желание можем да споменем имената на колоните.

пресечен

Syntax:  truncate <tablename>

Командата truncate по-долу изпразва таблицата, докато keeping неговата схема:

Деактивиране на командата за отрязване на HBase shell, пусканеpingи пресъздаване на таблицата guru99

След отрязването на HBase таблица, схемата ще бъде налична, но не и записите. Тази команда изпълнява 3 функции; те са изброени по-долу:

  • Деактивира таблицата, ако тя вече съществува.
  • Премахва таблицата, ако тя вече съществува.
  • Пресъздава споменатата таблица.

Сканиране

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

Тази команда сканира цялата таблица и показва съдържанието ѝ.

  • Можем да предадем няколко незадължителни спецификации към тази команда за сканиране, за да получим повече информация за таблиците, налични в системата.
  • Спецификациите на скенера може да включват един или повече от следните атрибути.
  • Това са TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW и STOPROW.
scan 'guru99'

Резултатът от сканирането е показан по-долу:

Команда за сканиране на HBase shell, показваща редове r1, r2 и r3 от таблицата guru99

На горната екранна снимка:

  • Показва таблицата „guru99“ с името на колоната и стойностите.
  • Състои се от три стойности на редове, r1, r2 и r3, за стойността на единичната колона c1.
  • Показва стойностите, свързани с редовете.

Примери: - Различните употреби на командата scan:

Команда употреба
сканиране '.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.

Code Пример: Първо, създайте таблица и поставете стойности в нея. Входните данни са показани на екранната снимка по-долу:

Входни данни от HBase shell, създаващи таблицата 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}

Ще се покаже резултатът, показан по-долу:

Изход от сканиране на HBase shell, показващ множество версии на клетки, включително изтрита стойност

Показаният на горната екранна снимка резултат дава следната информация:

  • Сканиране на таблицата guru99 с атрибути RAW=>true, VERSIONS=>1000.
  • Показване на редове със семейства колони и стойности.
  • В третия ред показаните стойности показват изтритата стойност, присъстваща в колоната.
  • Изходът, показан от него, е случаен; той не може да бъде в същия ред като стойностите, които сме въвели в таблицата.

Cluster Команди за репликация

  • Тези команди работят в режим на настройка на клъстера на HBase.
  • За добавяне и премахване на пиъри към клъстер, както и за стартиране и спиране на репликацията, тези команди се използват като цяло.
Команда Функционалност
add_peer Добавя пиъри към клъстер за репликиране.
hbase> add_peer '3', zk1, zk2, zk3:2182:/hbase-prod
remove_peer Спира дефинирания поток за репликация и изтрива цялата информация за метаданните за партньора.
hbase> remove_peer '1'
стартиране_репликация Рестартира всички функции за репликация.
hbase> start_replication
стоп_репликация Спира всички функции за репликация.
hbase>стоп_репликация

Въпроси и Отговори

Въведете exit или quit и натиснете Enter, за да излезете от интерактивната HBase обвивка и да се върнете към подканата на операционната система. Отваряте обвивката с командата hbase shell. Нито exit, нито quit спират HBase услугата; те само прекратяват сесията на обвивката.

Да. Прехвърляйте команди неинтерактивно, например echo “list” | hbase shell или изпълнявайте запазен файл с hbase shell script.txt. Тъй като shell-ът е базиран на JRuby, можете също да вграждате Ruby логика и цикли в .rb скриптови файлове.

Обвивката е интерактивен JRuby prompts за бързи ръчни команди и администриране. Java API, използващ Connection, Admin и Table, е за приложения, които създават таблици и четат или записват данни програмно. И двете достигат до един и същ HBase клъстер и данни.

Грешката „Таблица вече съществува“ се появява, когато командата create повтаря съществуващо име, а „Таблица не е деактивирана“ се появява, когато премахнете или промените, без първо да деактивирате. Изпълнете командата disable 'table' преди drop или alter и използвайте exists 'table', за да проверите името, преди да го създадете.

Семейството колони на HBase поддържа ограничен брой версии с времеви отпечатък на клетка, като в миналото това са били три, а в по-новите версии - една. Задайте броя с VERSIONS при създаване или промяна и заявете по-стари версии, като използвате {VERSIONS => n} на команда get или scan.

Референтната променлива към таблица е обект на обвивката, върнат от g = get_table 'guru99'. След това извиквате методи върху нея, като g.put, g.get или g.count, вместо да повтаряте името на таблицата. Това е удобен пряк път в стил JRuby в обвивката на HBase.

Асистентите за кодиране с изкуствен интелект и моделите с големи езици генерират HBase shell команди от заявки на обикновен език, обясняват непознати опции като филтри за сканиране или TTL и помагат за отстраняване на грешки. Машинното обучение също анализира клъстерните показатели, за да насочва репликацията и настройването на региона, въпреки че инженер трябва да провери всяка команда.

Да. Копилот на GitHub предлага HBase shell команди и JRuby скриптове от кратък коментар, включително примери за create, put, scan и alter. RevПрегледайте изхода му за правилното име на таблица, семейства колони и синтаксис, като например VERSIONS, преди да го стартирате на реален клъстер.

Обобщете тази публикация с: