Команды оболочки HBase с примерами

Содержание:

Anonim

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

Когда мы выполняем эту команду status, она предоставит информацию о количестве присутствующих серверов, мертвых серверов и средней загрузке сервера, здесь, на скриншоте, это показывает такую ​​информацию, как 1 активный сервер, 1 мертвый сервер и средняя нагрузка 7.0000.

Версия

Syntax: version

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

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

Syntax:table_help

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

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

кто я

Синтаксис:

Syntax: Whoami

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

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

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

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

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

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

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

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

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

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

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

  • Создавать
  • Список
  • Описывать
  • Запрещать
  • Отключить все
  • Давать возможность
  • Включить все
  • Уронить
  • Drop_all
  • Show_filters
  • Изменить
  • Alter_status

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

Создавать

Syntax: create 
, 

Пример:-

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 

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

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

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

запрещать

Syntax: disable 

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

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

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

 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'

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

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

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 ВЕРСИЙ ячеек ,
  • "education" - имя таблицы, созданной ранее с именем столбца "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, как показано на скриншоте выше, - это два новых имени столбца, которые мы определили для таблицы education.
  • Мы можем увидеть способ использования этой команды на предыдущем снимке экрана.
  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, относится к памяти в байтах.

П РИ МЕЧА Н И Е: Область действия таблицы атрибутов 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 из таблицы "education".

alter_status

 Syntax: alter_status 'education'

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

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

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

Команды подпадают под следующие:

  • Считать
  • Положить
  • Получать
  • Удалить
  • Удалить все
  • Усечь
  • Сканировать

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

Считать

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

Пример:

hbase> count 'guru99', CACHE=>1000

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

Получать

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Здесь <Дополнительные параметры> включают TIMERANGE, TIMESTAMP, VERSIONS и FILTERS.

Используя эту команду, вы получите содержимое строки или ячейки, присутствующее в таблице. В дополнение к этому вы также можете добавить к нему дополнительные параметры, такие как TIMESTAMP, TIMERANGE, VERSIONS, FILTERS и т. Д., Чтобы получить определенную строку или содержимое ячейки.

Примеры:-

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

Для таблицы "guru99" значения строки r1 и столбца c1 будут отображаться с использованием этой команды, как показано на снимке экрана выше.

hbase> get 'guru99', 'r1'

Для таблицы "guru99" значения строки r1 будут отображаться с помощью этой команды.

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

Для таблицы "guru99" значения строки 1 во временном диапазоне ts1 и ts2 будут отображаться с помощью этой команды.

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

Для таблицы "guru99" строки r1 и значения c1, c2, c3 семейств столбцов будут отображаться с помощью этой команды.

Удалить

Syntax:delete <'tablename'>,<'row name'>,<'column name'>
  • Эта команда удалит значение ячейки в определенной таблице строки или столбца.
  • Удаление должно и должно точно соответствовать координатам удаленных ячеек.
  • При сканировании удаление ячейки подавляет старые версии значений.

Пример:

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

удалить все

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

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

Пример:-

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

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

Усечь

Syntax: truncate 

После усечения таблицы 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'

start_replication

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

hbase> start_replication

stop_replication

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

hbase> stop_replication

Резюме :

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