Краткое руководство. Выполнение запросов Apache HBase в Azure HDInsight с помощью Apache Phoenix
В этом кратком руководстве вы узнаете, как использовать Apache Phoenix для выполнения запросов HBase в Azure HDInsight. Apache Phoenix — это система запросов SQL для Apache HBase. Доступ к системе осуществляется с помощью драйвера JDBC, она позволяет создавать запросы и управлять таблицами HBase с использованием SQL. SQLLine — это программа командной строки для выполнения SQL.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
Предварительные требования
Кластер Apache HBase. Чтобы создать кластер HDInsight, обратитесь к разделу Создание кластера Hadoop. Убедитесь, что выбран тип кластера HBase.
Клиент SSH. Дополнительные сведения см. в руководстве по подключению к HDInsight (Apache Hadoop) с помощью SSH.
Определение узла ZooKeeper
При подключении к кластеру HBase необходимо подключиться к одному из узлов Apache ZooKeeper. Каждый кластер HDInsight содержит три узла Zookeeper. Для быстрого определения узла ZooKeeper можно использовать Curl. Измените указанную ниже команду Curl, заменив PASSWORD
и CLUSTERNAME
с соответствующими значениями, а затем введите в командной строке команду:
curl -u admin:PASSWORD -sS -G https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER
Часть выходных данных будет выглядеть следующим образом:
{
"href" : "http://hn*.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net:8080/api/v1/clusters/myCluster/hosts/<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net/host_components/ZOOKEEPER_SERVER",
"HostRoles" : {
"cluster_name" : "myCluster",
"component_name" : "ZOOKEEPER_SERVER",
"host_name" : "<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net"
}
Запишите значение host_name
для последующего использования.
Создание таблицы и обработка данных
Для подключения к кластерам HBase можно использовать протокол SSH, а для создания таблиц HBase, вставки данных и создания запросов к данным — Apache Phoenix.
С помощью команды
ssh
подключитесь к кластеру HBase. Измените приведенную ниже команду, заменивCLUSTERNAME
именем своего кластера, а затем введите команду:ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Перейдите в каталог клиента Phoenix. Введите следующую команду:
cd /usr/hdp/current/phoenix-client/bin
Запустите SQLLine. Измените указанную ниже команду, заменив
ZOOKEEPER
на узел ZooKeeper, определенный ранее, и введите команду:./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
Создайте таблицу HBase. Введите следующую команду:
CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
С помощью команды SQLLine
!tables
выведите список всех таблиц в HBase. Введите следующую команду:!tables
Вставьте значения в таблицу. Введите следующую команду:
UPSERT INTO Company VALUES(1, 'Microsoft'); UPSERT INTO Company VALUES(2, 'Apache');
Отправьте запрос к таблице. Введите следующую команду:
SELECT * FROM Company;
Удалите запись. Введите следующую команду:
DELETE FROM Company WHERE COMPANY_ID=1;
Удалите таблицу. Введите следующую команду:
DROP TABLE Company;
С помощью команды SQLLine
!quit
выйдите из SQLLine. Введите следующую команду:!quit
Очистка ресурсов
После завершения работы с этим кратким руководством кластер можно удалить. В случае с HDInsight ваши данные хранятся в службе хранилища Azure, что позволяет безопасно удалить неиспользуемый кластер. Плата за кластеры HDInsight взимается, даже когда они не используются. Поскольку стоимость кластера во много раз превышает стоимость хранилища, экономически целесообразно удалять неиспользуемые кластеры.
Инструкции по удалению кластера см. в статье Delete an HDInsight cluster using your browser, PowerShell, or the Azure CLI (Удаление кластера HDInsight с помощью браузера, PowerShell или Azure CLI).
Дальнейшие действия
Из этого краткого руководства вы узнаете, как использовать Apache Phoenix для выполнения запросов HBase в Azure HDInsight. Дополнительные сведения об Apache Phoenix можно найти в следующей статье.