Использование внешнего 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 |
Устанавливает проверку аутентификации, целостности и приватности. Поддерживаемые значения:
|
HBase Thrift2-сервер работает на порте 9090
.