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

Из этого краткого руководства вы узнаете, как использовать Apache Zeppelin для выполнения запросов Apache Hive в Azure HDInsight. Кластеры Interactive Query HDInsight включают записные книжки Apache Zeppelin, которые можно использовать для выполнения интерактивных запросов Hive.

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

Необходимые компоненты

Кластер Interactive Query HDInsight. Чтобы создать кластер HDInsight, обратитесь к разделу Создание кластера Hadoop. Выберите тип кластера Interactive Query.

Создание заметки Apache Zeppelin

  1. В URL-адресе https://CLUSTERNAME.azurehdinsight.net/zeppelin замените CLUSTERNAME именем своего кластера. В веб-браузере перейдите по этому URL-адресу.

  2. Введите имя пользователя и пароль для входа в кластер. На странице Zeppelin можно создать новую заметку или открыть существующие заметки. В разделе HiveSample находятся примеры запросов Hive.

    HDInsight Interactive Query zeppelin.

  3. Выберите Create new note (Создать заметку).

  4. В диалоговом окне создания заметки введите или выберите следующие значения:

    • Note Name (Название заметки): введите название заметки.
    • Default interpreter (Интерпретатор по умолчанию): выберите JDBC в раскрывающемся списке.
  5. Выберите Create Note (Создать заметку).

  6. Введите следующий запрос Hive в разделе кода и нажмите клавиши SHIFT+ВВОД:

    %jdbc(hive)
    show tables
    

    HDInsight Interactive Query zeppelin runs query.

    Инструкция %jdbc(hive) в первой строке означает, что записная книжка должна использовать интерпретатор JDBC Hive.

    Запрос должен вернуть одну таблицу Hive с именем hivesampletable.

    Ниже приведены два дополнительных запроса Hive, которые можно выполнить с таблицей hivesampletable.

    %jdbc(hive)
    select * from hivesampletable limit 10
    
    %jdbc(hive)
    select ${group_name}, count(*) as total_count
    from hivesampletable
    group by ${group_name=market,market|deviceplatform|devicemake}
    limit ${total_count=10}
    

    По сравнению с обычным Hive, результаты запроса возвращаются намного быстрее.

Дополнительные примеры

  1. Создать таблицу. Выполните приведенный ниже код в записной книжке Zeppelin.

    %jdbc(hive)
    CREATE EXTERNAL TABLE log4jLogs (
        t1 string,
        t2 string,
        t3 string,
        t4 string,
        t5 string,
        t6 string,
        t7 string)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE;
    
  2. Загрузите данные в новую таблицу. Выполните приведенный ниже код в записной книжке Zeppelin.

    %jdbc(hive)
    LOAD DATA
    INPATH 'wasbs:///example/data/sample.log'
    INTO TABLE log4jLogs;
    
  3. Вставьте одну запись. Выполните приведенный ниже код в записной книжке Zeppelin.

    %jdbc(hive)
    INSERT INTO TABLE log4jLogs2
    VALUES ('A', 'B', 'C', 'D', 'E', 'F', 'G');
    

Дополнительные сведения о синтаксисе см. в руководстве по языку Hive.

Очистка ресурсов

После завершения работы с этим кратким руководством кластер можно удалить. В случае с HDInsight ваши данные хранятся в службе хранилища Azure, что позволяет безопасно удалить неиспользуемый кластер. Плата за кластеры HDInsight взимается, даже когда они не используются. Так как затраты на кластер во много раз превышают затраты на хранилище, экономически целесообразно удалять неиспользуемые кластеры.

Инструкции по удалению кластера см. в статье Delete an HDInsight cluster using your browser, PowerShell, or the Azure CLI (Удаление кластера HDInsight с помощью браузера, PowerShell или Azure CLI).

Следующие шаги

Из этого краткого руководства вы узнали, как использовать Apache Zeppelin для выполнения запросов Apache Hive в Azure HDInsight. Дополнительные сведения о запросах Hive см. следующей статье, в которой показано, как выполнять запросы с помощью Visual Studio.