Учебники

4) Оболочка и общие команды

После успешной установки 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.

Например ,

  • В этом уроке мы создали таблицу, в которой слово «education» представляет имя таблицы и соответствует имени столбца «guru99».
  • В некоторых командах «guru99» представляет собой имя таблицы.

В этом уроке вы узнаете,

Общие команды

В Hbase общие команды подразделяются на следующие команды

  • Положение дел
  • Версия
  • Table_help (сканирование, удаление, получение, установка, отключение и т. Д.)
  • Кто я

Чтобы войти в команду оболочки HBase, в первую очередь, мы должны выполнить код, как указано ниже

HBase Shell и общие команды

hbase Shell

Как только мы войдем в оболочку HBase, мы сможем выполнить все команды оболочки, упомянутые ниже. С помощью этих команд мы можем выполнять все типы табличных операций в режиме оболочки HBase.

Давайте рассмотрим все эти команды и их использование по одному на примере.

Положение дел

Syntax:status

Эта команда предоставит подробную информацию о состоянии системы, например, количество серверов в кластере, количество активных серверов и среднее значение нагрузки. Вы также можете передать любые конкретные параметры в зависимости от того, насколько подробный статус вы хотите знать о системе. Параметры могут быть «итоговыми», «простыми» или «подробными» , по умолчанию предоставляется параметр «итоговый».

Ниже мы показали, как вы можете передавать различные параметры команде статуса.

Если мы посмотрим на снимок экрана ниже, мы получим лучшее представление.

HBase Shell и общие команды

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 Shell и общие команды

  • Эта команда отобразит текущую версию HBase в командном режиме.
  • Если вы запустите команду версии, она выдаст вывод, как показано выше

Таблица помощи

Syntax:table_help

HBase Shell и общие команды

Эта команда направляет

  • Что и как использовать команды с табличными ссылками
  • Он будет предоставлять различные варианты использования команд HBase и их синтаксисы.
  • Здесь на снимке экрана выше показан синтаксис команд « create» и « get_table» с его использованием. Мы можем манипулировать таблицей с помощью этих команд, как только таблица будет создана в HBase.
  • Он предоставит информацию о командах управления таблицами, таких как put, get и все другие команды.

кто я

Синтаксис:

Syntax: Whoami

HBase Shell и общие команды

Эта команда «whoami» используется для возврата текущей информации о пользователе HBase из кластера HBase.

Это обеспечит информацию как

  • Группы присутствующие в HBase
  • Информация о пользователе, например, в этом случае «hduser» представляет имя пользователя, как показано на снимке экрана

TTL (время жизни) — атрибут

В HBase семейства столбцов могут быть установлены на значения времени в секундах с использованием TTL. HBase автоматически удалит строки по истечении времени истечения. Этот атрибут применяется ко всем версиям строки — даже к текущей версии.

Время TTL, закодированное в HBase для строки, указывается в UTC. Этот атрибут используется с командами управления таблицами.

Важные различия между обработкой TTL и TTL семейства столбцов приведены ниже.

  • ТТЛ ячейки выражаются в миллисекундах, а не в секундах.
  • TTL ячейки не могут продлить эффективный срок службы ячейки за пределы настройки TTL уровня семейства столбцов.

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

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

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

  • Создайте
  • Список
  • описывать
  • Отключить
  • Отключить все
  • включить
  • Включить все
  • Капля
  • Drop_all
  • Show_filters
  • Alter
  • Alter_status

Давайте рассмотрим пример использования различных команд в HBase.

Создайте

Syntax: create <tablename>, <columnfamilyname>

HBase Shell и общие команды

Пример:-

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

Приведенный выше пример объясняет, как создать таблицу в HBase с указанным именем, данным в соответствии со словарем или спецификациями в соответствии с семейством столбцов. В дополнение к этому мы также можем передать некоторые атрибуты области таблицы.

Чтобы проверить, создана ли таблица «образование» или нет, мы должны использовать команду «список», как указано ниже.

Список

Syntax:list

HBase Shell и общие команды

  • Команда «Список» отобразит все таблицы, которые присутствуют или созданы в HBase
  • Вывод, показанный на снимке экрана выше, в настоящее время показывает существующие таблицы в HBase
  • Здесь на этом скриншоте показано, что в HBase имеется всего 8 таблиц
  • Мы можем фильтровать выходные значения из таблиц, передавая необязательные параметры регулярного выражения

описывать

Syntax:describe <table name>

HBase Shell и общие команды

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

Эта команда описывает именованную таблицу.

  • Это даст больше информации о семействах столбцов, присутствующих в упомянутой таблице.
  • В нашем случае это дает описание таблицы «образование».
  • Он предоставит информацию об имени таблицы с семействами столбцов, связанными фильтрами, версиями и некоторыми другими деталями.

отключить

Syntax: disable <tablename>

HBase Shell и общие команды

hbase(main):011:0>disable 'education'
  • Эта команда начнет отключать именованную таблицу
  • Если таблицу нужно удалить или удалить, сначала нужно отключить

Здесь на скриншоте выше мы отключаем обучение

отключить все

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

включить

Syntax: enable <tablename>

HBase Shell и общие команды

hbase(main):012:0>enable 'education'
  • Эта команда начнет включение именованной таблицы
  • Какая бы таблица не была отключена, чтобы восстановить ее прежнее состояние, мы используем эту команду
  • Если таблица отключена в первом случае и не удалена или не удалена, и если мы хотим повторно использовать отключенную таблицу, то мы должны включить ее с помощью этой команды.
  • Здесь на скриншоте выше мы включаем таблицу «образование».

show_filters

Syntax: show_filters

HBase Shell и общие команды

Эта команда отображает все фильтры, присутствующие в HBase, такие как ColumnPrefix Filter, TimestampsFilter, PageFilter, FamilyFilter и т. Д.

падение

Syntax:drop <table name>

HBase Shell и общие команды

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

We have to observe below points for drop command

  • To delete the table present in HBase, first we have to disable it
  • To drop the table present in HBase, first we have to disable it
  • So either table to drop or delete first the table should be disable using disable command
  • Here in above screenshot we are dropping table «education.»
  • Before execution of this command, it is necessary that you disable table «education.»

drop_all

Syntax: drop_all<"regex">
  • This command will drop all the tables matching the given regex
  • Tables have to disable first before executing this command using disable_all
  • Tables with regex matching expressions are going to drop from HBase

is_enabled

Syntax: is_enabled 'education'

This command will verify whether the named table is enabled or not. Usually, there is a little confusion between «enable» and «is_enabled» command action, which we clear here

  • Suppose a table is disabled, to use that table we have to enable it by using enable command
  • is_enabled command will check either the table is enabled or not

alter

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

This command alters the column family schema. To understand what exactly it does, we have explained it here with an example.

Examples:

In these examples, we are going to perform alter command operations on tables and on its columns. We will perform operations like

  • Altering single, multiple column family names
  • Deleting column family names from table
  • Several other operations using scope attributes with table
  1. Чтобы изменить или добавить семейство столбцов «guru99_1» в таблице «образование» из текущего значения, чтобы сохранить максимум 5 ячеек VERSIONS ,
  • «образование» — это имя таблицы, созданное с именем столбца «guru99» ранее
  • Здесь с помощью команды alter мы пытаемся изменить схему семейства столбцов на guru99_1 с guru99

HBase Shell и общие команды

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}

HBase Shell и общие команды

  • С помощью этой команды мы можем изменять более одной схемы столбцов одновременно.
  • guru99_2 и guru99_3, как показано на скриншоте выше, являются двумя новыми именами столбцов, которые мы определили для образования таблицы
  • Мы можем увидеть способ использования этой команды на предыдущем снимке экрана
  1. На этом шаге мы увидим, как удалить семейство столбцов из таблицы. Удалить семейство столбцов «f1» в таблице «образование».

Используйте одну из этих команд ниже,

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

HBase Shell и общие команды

  1. Как показано на снимках экрана ниже, он показывает два шага — как изменить атрибут области таблицы и как удалить атрибут области таблицы.
Syntax: alter <'tablename'>, MAX_FILESIZE=>'132545224'

HBase Shell и общие команды

Шаг 1) Вы можете изменить атрибуты области таблицы, такие как MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH и т. Д. Они могут быть помещены в конец, например, чтобы изменить максимальный размер области на 128 МБ или любое другое значение памяти, которое мы используем, команда.

Применение:

  • Мы можем использовать 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».

alter_status

 Syntax: alter_status 'education'

HBase Shell и общие команды

  • С помощью этой команды вы можете получить статус команды alter.
  • Который указывает количество областей таблицы, которые получили обновленное имя таблицы передачи схемы
  • Здесь, на снимке экрана выше, показаны 1/1 обновленных регионов. Это означает, что он обновил один регион. После этого, если он успешен, он покажет комментарий готово.

Команды манипулирования данными

Эти команды будут работать с таблицей, связанной с манипуляциями с данными, такими как помещение данных в таблицу, извлечение данных из таблицы, удаление схемы и т. Д.

Команды подпадают под эти

  • подсчитывать
  • Положил
  • Получить
  • удалять
  • Удалить все
  • Округление
  • сканирование

Давайте рассмотрим использование этих команд на примере.

подсчитывать

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

Пример:

HBase Shell и общие команды

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 в таблицу «guru99», как показано на скриншоте ниже

HBase Shell и общие команды

  • Предположим, что таблица «Guru99» имеет некоторую ссылку на таблицу, например, скажем, g. Мы также можем запустить команду для ссылки на таблицу, например,

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Вывод будет таким, как показано на приведенном выше снимке экрана после помещения значений в «guru99».

Чтобы проверить, правильно ли введено входное значение в таблицу, мы используем команду «сканирование». На снимке экрана ниже мы видим, что значения вставлены правильно

HBase Shell и общие команды

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

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 Shell и общие команды

Примеры:-

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 Shell и общие команды

Пример:

hbase(main):)020:0> delete 'guru99', 'r1', 'c1''. 
  • Вышеуказанное выполнение удалит строку r1 из семейства столбцов c1 в таблице «guru99».
  • Предположим, что в таблице «guru99» есть ссылка на таблицу, например, скажем, g.
  • Мы можем запустить команду для ссылки на таблицу, например, hbase> g.delete ‘guru99’, ‘r1’, ‘c1’ «.

удалить все

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

HBase Shell и общие команды

  • Эта команда удалит все ячейки в данной строке.
  • Мы можем опционально определить имена столбцов и метки времени для синтаксиса.

Пример:-

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

Это удалит все строки и столбцы, представленные в таблице. При желании мы можем упомянуть имена столбцов в этом.

Округление

Syntax:  truncate <tablename>

HBase Shell и общие команды

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

  • Отключает таблицу, если она уже представлена
  • Сбрасывает стол, если он уже представлен
  • Воссоздает упомянутую таблицу

сканирование

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

Эта команда сканирует всю таблицу и отображает содержимое таблицы.

  • Мы можем передать несколько необязательных спецификаций этой команде сканирования, чтобы получить больше информации о таблицах, присутствующих в системе.
  • Спецификации сканера могут включать один или несколько следующих атрибутов.
  • Это TIMERANGE, FILTER, TIMESTAMP, LIMIT, MAXLENGTH, COLUMNS, CACHE, STARTROW и STOPROW.
scan 'guru99' 

Вывод, как показано ниже на скриншоте

HBase Shell и общие команды

На приведенном выше снимке экрана

  • Показывает таблицу «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 и значениями, указанными между указанным значением атрибута временного диапазона.

scan ‘guru99’, {RAW => true, VERSIONS => 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

Скриншот ввода:

HBase Shell и общие команды

Если мы запустим команду сканирования

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

Он отобразит вывод, показанный ниже.

Снимок экрана:

HBase Shell и общие команды

Вывод, показанный на снимке экрана выше, дает следующую информацию

  • Сканирование таблицы 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

stop_replication

Останавливает все функции репликации

HBase> stop_replication

Резюме :

Оболочка HBase и общие команды предоставляют полную информацию о различных типах команд обработки данных, управления таблицами и репликации кластеров. Мы можем выполнять различные функции, используя эти команды для таблиц, представленных в HBase.