Краткое руководство. Выполнение запросов Apache HBase в Azure HDInsight с помощью Apache Phoenix

В этом кратком руководстве вы узнаете, как использовать Apache Phoenix для выполнения запросов HBase в Azure HDInsight. Apache Phoenix — это система запросов SQL для Apache HBase. Доступ к системе осуществляется с помощью драйвера JDBC, она позволяет создавать запросы и управлять таблицами HBase с использованием SQL. SQLLine — это программа командной строки для выполнения SQL.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.

Предварительные требования

Определение узла 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.

  1. С помощью команды ssh подключитесь к кластеру HBase. Измените приведенную ниже команду, заменив CLUSTERNAME именем своего кластера, а затем введите команду:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Перейдите в каталог клиента Phoenix. Введите следующую команду:

    cd /usr/hdp/current/phoenix-client/bin
    
  3. Запустите SQLLine. Измените указанную ниже команду, заменив ZOOKEEPER на узел ZooKeeper, определенный ранее, и введите команду:

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. Создайте таблицу HBase. Введите следующую команду:

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. С помощью команды SQLLine !tables выведите список всех таблиц в HBase. Введите следующую команду:

    !tables
    
  6. Вставьте значения в таблицу. Введите следующую команду:

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. Отправьте запрос к таблице. Введите следующую команду:

    SELECT * FROM Company;
    
  8. Удалите запись. Введите следующую команду:

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. Удалите таблицу. Введите следующую команду:

    DROP TABLE Company;
    
  10. С помощью команды 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 можно найти в следующей статье.