Use Apache Ambari Hive View with Apache Hadoop in HDInsight (Использование представления Hive Apache Ambari с Apache Hadoop в HDInsight)

Узнайте, как выполнять запросы Hive с использованием представления Hive Apache Ambari. Представление Hive позволяет создавать, оптимизировать и выполнять запросы Hive из веб-браузера.

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

Кластер Hadoop в HDInsight. Ознакомьтесь со статьей Краткое руководство. Использование Apache Hadoop и Apache Hive в Azure HDInsight с шаблоном Resource Manager.

Выполнение запроса Hive

  1. На портале Azure выберите свой кластер. Инструкции см. в разделе Отображение кластеров. Кластер откроется на новой странице портала.

  2. На Панелях мониторинга кластеров выберите Представления Ambari. Если запрашивается проверка подлинности, используйте имя пользователя и пароль учетной записи входа в кластер (по умолчанию — admin), указанные при создании кластера. Можно также перейти по адресу https://CLUSTERNAME.azurehdinsight.net/#/main/views в браузере, где CLUSTERNAME — это имя кластера.

  3. В списке представлений выберите Представление Hive.

    Apache Ambari select Apache Hive view.

    Страница представления Hive выглядит следующим образом:

    Image of the query worksheet for the Hive view.

  4. На вкладке Запрос вставьте в лист следующие инструкции HiveQL:

    DROP TABLE log4jLogs;
    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 LOCATION '/example/data/';
    SELECT t4 AS loglevel, COUNT(*) AS count FROM log4jLogs
        WHERE t4 = '[ERROR]'
        GROUP BY t4;
    

    Эти инструкции выполняют описанные ниже действия.

    Оператор Description
    DROP TABLE удаляет таблицу и файл данных, если таблица уже существует.
    CREATE EXTERNAL TABLE создает "внешнюю" таблицу в Hive. Внешние таблицы хранят только определение таблицы в Hive. Данные остаются в исходном расположении.
    ROW FORMAT показывает настройку форматирования данных. В данном случае поля всех журналов разделены пробелом.
    STORED AS TEXTFILE LOCATION показывает место хранения данных и их формат (текст).
    SELECT выбирает подсчет количества строк, в которых столбец t4 содержит значение [ERROR].

    Внимание

    Оставьте для параметра База данных значение по умолчанию. В примерах в этом документе используется база данных по умолчанию, входящая в состав HDInsight.

  5. Чтобы выполнить запрос, нажмите кнопку Выполнить под листом. Кнопка станет оранжевой, а текст изменится на Остановить.

  6. Когда запрос будет выполнен, на вкладке Результаты появятся результаты этой операции. Вот пример результата запроса:

    loglevel       count
    [ERROR]        3
    

    Просмотреть сведения, регистрируемые в процессе выполнения задания, можно на вкладке ЖУРНАЛ.

    Совет

    Скачайте или сохраните результаты из раскрывающегося диалогового окна Действия на вкладке Результаты.

Визуальное объяснение

Чтобы отобразить визуализацию плана запроса, выберите под листом вкладку Visual Explain (Визуальное пояснение).

Представление запроса Visual Explain (Визуальное объяснение) помогает разобраться в потоке сложных запросов.

Пользовательский интерфейс Tez

Чтобы отобразить пользовательский интерфейс Tez для запроса, выберите под листом вкладку Пользовательский интерфейс Tez.

Внимание

Tez используется не для всех запросов. Многие запросы можно разрешить и без применения Tez.

Просмотреть журнал заданий

На вкладке Задания отображается журнал запросов Hive.

Apache Hive view jobs tab history.

Таблицы базы данных

Вкладку Таблицы можно использовать для работы с таблицами в базе данных Hive.

Image of the Apache Hive tables tab.

Сохраненные запросы

На вкладке Запрос можно при желании сохранять запросы. После сохранения запроса можно повторно использовать его из вкладки Saved Queries (Сохраненные запросы).

Apache Hive views saved queries tab.

Совет

Запросы сохраняются в системе хранения данных кластера по умолчанию. Сохраненные запросы можно найти в следующем расположении: /user/<username>/hive/scripts. Они хранятся в виде обычных текстовых файлов .hql.

Если вы удалите кластер, но сохраните хранилище, для извлечения запросов можно использовать такую служебную программу, как Обозреватель службы хранилища Azure или обозреватель хранилища Data Lake (на портале Azure).

Пользовательские функции

Инфраструктуру Hive можно расширить с помощью определяемых пользователем функций (UDF). Они позволяют реализовать функции или логику, сложно моделируемые в HiveQL.

Объявлять и сохранять наборы определяемых пользователем функций можно с помощью вкладки UDF вверху представления Hive. Эти функции могут использоваться в редакторе запросов.

Apache Hive view UDFs tab display.

Кнопка Вставить определяемые пользователем функции появляется в нижней части Редактора запросов. Нажав эту кнопку, вы увидите раскрывающийся список функций, определенных в представлении Hive. Выбирая определяемую пользователем функцию, вы добавляете в запрос соответствующие инструкции HiveQL.

Например, вы определили функцию со следующими свойствами:

  • имя ресурса — myudfs;

  • путь к ресурсу — /myudfs.jar;

  • имя определяемой пользователем функции — myawesomeudf;

  • имя класса определяемой пользователем функции — com.myudfs.Awesome.

Нажав кнопку Insert udfs (Вставить определяемые пользователем функции), вы увидите запись с именем myudfs, содержащую раскрывающийся список для каждой функции, определяемой для этого ресурса. В нашем примере это функция myawesomeudf. Если вы выберете эту запись, в начало запроса будет добавлен следующий код:

add jar /myudfs.jar;
create temporary function myawesomeudf as 'com.myudfs.Awesome';

Затем вы можете использовать эту функцию в своем запросе. Например, SELECT myawesomeudf(name) FROM people;.

Дополнительные сведения об использовании определяемых пользователем функций с Hive в HDInsight см. в следующих статьях:

Параметры Hive

Вы можете изменять различные настройки Hive. Например, для изменения механизма выполнения для Hive с Tez (значение по умолчанию) на MapReduce.

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

Общая информация о Hive в HDInsight: