Команды оболочки 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

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

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

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

Статус

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 в командном режиме.
  • Если вы запустите команду версии, она выдаст результат, как показано выше.

Справка по таблице

Syntax:table_help

Таблица справки

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

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

Whoami

Синтаксис:

Syntax: Whoami

Кто я

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

Он предоставит такую ​​информацию, как

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

TTL (Время жить) – атрибут

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

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

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

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

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

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

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

  • Создавай
  • Список
  • Описывать
  • Отключить
  • Отключить все
  • Включите
  • Включить все
  • Падение
  • Drop_all
  • Показать_фильтры
  • вносить изменения
  • Альтернативный_статус

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

Создавай

Syntax: create <tablename>, <columnfamilyname>

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

Пример:-

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

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

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

Список

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

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

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

падение

Syntax:drop <table name>

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

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

Мы должны соблюдать приведенные ниже пункты для команды сброса.

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

drop_all

Syntax: drop_all<"regex">
  • Эта команда удалит все таблицы, соответствующие данному регулярному выражению.
  • Таблицы необходимо сначала отключить, прежде чем выполнять эту команду с использованием Disable_all.
  • Таблицы с выражениями, соответствующими регулярным выражениям, будут удалены из HBase

включен

Syntax: is_enabled 'education'

Эта команда проверит, включена ли именованная таблица или нет. Обычно между командными действиями «enable» и «is_enabled» возникает небольшая путаница, которую мы здесь проясним.

  • Предположим, таблица отключена. Чтобы использовать эту таблицу, нам нужно включить ее с помощью команды включения.
  • Команда is_enabled проверит, включена таблица или нет.

изменять

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

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

Примеры:

В этих примерах мы собираемся выполнять операции команды изменения над таблицами и их столбцами. Мы будем выполнять такие операции, как

  • Изменение имен одного или нескольких семейств столбцов
  • Удаление названий семейств столбцов из таблицы
  • Несколько других операций с использованием атрибутов области с таблицей
  1. Чтобы изменить или добавить семейство столбцов «guru99_1» в таблице «Образование» из текущего значения, чтобы сохранить максимум 5 ячеек ВЕРСИЙ.,
  • «Образование» — это имя таблицы, созданное ранее с именем столбца «guru99».
  • Здесь с помощью команды alter мы пытаемся изменить схему семейства столбцов на guru99_1 с guru99.

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

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

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

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

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

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

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

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

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

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

Применение:

  • Мы можем использовать MAX_FILESIZE с таблицей в качестве атрибута области, как указано выше.
  • Число, представленное в MAX_FILESIZE, выражается в памяти в байтах.

NОТ: MAX_FILESIZE Область таблицы атрибутов будет определяться некоторыми атрибутами, присутствующими в HBase. MAX_FILESIZE также относится к атрибутам области таблицы.

Шаг 2) Вы также можете удалить атрибут области таблицы, используя метод table_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_status

  • С помощью этой команды вы можете получить статус команды изменения.
  • Это указывает на количество регионов таблицы, получивших обновленное имя таблицы пропуска схемы.
  • Здесь, на снимке экрана выше, показано обновление 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.

Мы можем запустить команду подсчета по ссылке на таблицу, как показано ниже.

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», как показано на скриншоте ниже.

Ставить

  • Предположим, что таблица «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, ВЕРСИИ и ФИЛЬТРЫ.

Используя эту команду, вы получите содержимое строки или ячейки, присутствующее в таблице. В дополнение к этому вы также можете добавить к нему дополнительные параметры, такие как 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.удалить «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 => 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

Входной скриншот:

Пример сканирования

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

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'

start_replication Перезапускает все функции репликации.

hbase> start_replication

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

hbase>stop_replication

Резюме

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