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

Съдържание:

Anonim

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

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

  • Интерактивен режим на черупката на HBase и
  • Чрез Java API

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

Единствената разлика между тези две е Java API използва java код за свързване с HBase, а режимът на черупката използва команди на shell за свързване с HBase.

Бързо припокриване на HBase преди да продължим-

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

За примери ,

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

В този урок ще научите,

  • Общи команди
  • Команди за управление на таблици
  • Команди за манипулиране на данни
  • Команди за репликация на клъстер

Общи команди

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

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

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

hbase Shell

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

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

Състояние

Syntax: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 shell и техните синтаксиси
  • Тук, на снимката на екрана по-горе, той показва синтаксиса на командата " 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 на ниво семейство колони.

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

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

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

  • Създайте
  • Списък
  • Описвам
  • Деактивирайте
  • Disable_all
  • Активиране
  • 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

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

Описвам

Syntax:describe 

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

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

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

деактивирайте

Syntax: disable 

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

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

disable_all

 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, първо трябва да я деактивираме
  • Така че или таблицата, която първо трябва да пуснете или изтриете, трябва да бъде деактивирана с помощта на команда за деактивиране
  • Тук в горната екранна снимка изпускаме таблица „образование“.
  • Преди изпълнението на тази команда е необходимо да деактивирате таблицата „образование“.

drop_all

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

е_активиран

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 и др. Те могат да бъдат поставени в края; например, за да промените максималния размер на регион на 128MB или друга стойност на паметта, която използваме това команда.

Употреба:

  • Можем да използваме 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 реда.
  • Командата 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 на семейства редове и колони ще бъдат показани с помощта на тази команда

Изтрий

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'

начална_репликация

Рестартира всички функции за репликация

hbase> начална_репликация

стоп_репликация

Спира всички функции за репликация

hbase> стоп_репликация

Резюме :

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