Использование внешнего API для подключения к HBase

Вы можете получить доступ к Apache HBase не только с помощью языка Java, но и других языков программирования и специальных протоколов. ADH 3.1.2.1 включает HBase REST Server и HBase Thrift2 Server, настройка которых описана ниже. Также можно использовать C/C++ Apache HBase Client, Java Data Objects (JDO), Scala и Jython для того, чтобы подключиться к сервису ADH HBase теми же способами, что и к нативной версии Apache HBase.

HBase REST Server

ADH включает HBase REST-сервер, который может быть добавлен в кластер во время установки. Чтобы добавить компонент HBase REST Server в уже установленный кластер, выполните кластерное действие Add HBase REST Server(s). См. Управление сервисом HBase через ADCM.

По умолчанию HBase REST-сервер работает на порте 60080. Чтобы изменить это значение, укажите параметр конфигурации hbase.rest.port в пользовательском интерфейсе ADCM. Cм. Конфигурационные параметры.

HTTP-методы для обращения к REST-серверу можно вызывать утилитами curl или wget. Если для конечной точки не указан определенный метод, используйте GET для запросов на выборку, PUT или POST для создания или изменения и DELETE для удаления.

В этой статье содержится несколько примеров использования конечных точек. Для получения информации обо всех доступных конечных точках перейдите по ссылке Using REST Endpoints.

По умолчанию вывод команды представляет собой обычный текст. Чтобы изменить формат ответа, добавьте заголовок Accept следующим образом:

  • для XML — Accept: text/xml;

  • для JSON — Accept: application/json;

  • для Protocol Buffers (протокол сериализации данных) — Accept: application/x-protobuf.

Следующий запрос возвращает версию кластера в формате XML:

$ curl -vi -X GET -H "Accept: text/xml" "http://10.92.40.168:60080/version/cluster"

Результат:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ClusterVersion Version="2.2.7"/>

Можно использовать конечные точки для управления пространствами имен. Команда ниже создает пространство имен:

$ curl -vi -X POST "http://10.92.40.168:60080/namespaces/test_ns"

Чтобы удалить пространство имен test_ns, вызовите следующую команду:

$ curl -vi -X DELETE "http://10.92.40.168:60080/namespaces/test_ns"

Приведенный ниже код создает новую таблицу или заменяет схему существующей таблицы указанной схемой:

$ curl -vi -X POST \
-H "Accept: text/xml" \
-H "Content-Type: text/xml" \
-d '<?xml version="1.0" encoding="UTF-8"?><TableSchema name="users"><ColumnSchema name="cf" /></TableSchema>' \
"http://10.92.40.168:60080/users/schema"

Добавьте строку в таблицу users, созданную выше:

$ curl -vi -X PUT \
         -H "Accept: text/xml" \
         -H "Content-Type: text/xml" \
         -d '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="cm93MQ=="><Cell column="Y2Y6ZQo=">dmFsdWUx</Cell></Row></CellSet>' \
         "http://10.92.40.168:60080/users/testrow"

Строка, квалификатор столбца и значение должны быть закодированы Base-64.

Код ниже удаляет таблицу users:

$ curl -vi -X DELETE -H "Accept: text/xml" "http://10.92.40.168:60080/users/schema"

HBase Thrift2 Server

Вы можете добавить компонент HBase Thrift2 server во время установки кластера на шаге Добавление компонентов. Также можно использовать действие Add Thrift2 Server(s), чтобы включить HBase Thrift2-сервер в уже установленном кластере. См. Управление сервисом HBase через ADCM.

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

Параметр Описание

hbase.thrift.keytab.file

Kerberos keytab-файл для Thrift

hbase.thrift.kerberos.principal

Принципал Thrift Kerberos

hbase.thrift.security.qop

Устанавливает проверку аутентификации, целостности и приватности. Поддерживаемые значения:

  • auth-conf — проверка аутентификации, целостности и приватности;

  • auth-int — проверка аутентификации и целостности;

  • auth — только проверка аутентификации.

HBase Thrift2-сервер работает на порте 9090.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней