Поделиться через


Краткое руководство: Запросы к 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. Curl можно использовать для быстрого определения узла ZooKeeper. Измените приведенную ниже команду 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 для дальнейшего использования.

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

Вы можете использовать SSH для подключения к кластерам HBase, а затем использовать Apache Phoenix для создания таблиц HBase, вставки данных и запроса данных.

  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. Используйте команду !quit SQLLine для выхода из 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, следующая статья предоставит более глубокий анализ.