Добавление пользовательских библиотек Apache Hive при создании кластера HDInsight

Дополнительные сведения о предварительной загрузке библиотек Apache Hive в HDInsight. Этот документ содержит сведения об использовании действия скрипта по предварительной загрузке библиотек во время создания кластера. Библиотеки, добавляемые с помощью инструкций в этом документе, глобально доступны в Hive. Для их загрузки нет необходимости использовать ADD JAR.

Принцип работы

При создании кластера действие скрипта можно использовать для изменения создаваемых узлов кластера. Скрипт в этом документе принимает один параметр, определяющий расположение библиотек. Это расположение должно быть в пределах учетной записи хранилища Azure, а библиотеки должны быть в формате JAR.

Во время создания кластера сценарий перечисляет файлы, копирует их в каталог /usr/lib/customhivelibs/ на головных и рабочих узлах, а затем добавляет их в свойство hive.aux.jars.path в файле core-site.xml. Для кластеров под управлением Linux он также обновляет файл hive-env.sh расположением файлов.

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

Сценарий

Расположение скрипта

https://hdiconfigactions.blob.core.windows.net/setupcustomhivelibsv01/setup-customhivelibs-v01.ps1

Требования

  • Скрипты необходимо применять к головным узлам и рабочим узлам.

  • JAR-файлы, которые нужно установить, должны храниться в хранилище BLOB-объектов Azure в одном контейнере.

  • Учетная запись хранилища, содержащая библиотеку JAR-файлов, должна быть связана с кластером HDInsight во время создания. Это должна быть учетная запись хранения по умолчанию или учетная запись, добавленная с помощью настроек учетной записи хранения.

  • Путь WASB к контейнеру необходимо указать в виде параметра для действия сценария. Например, если JAR-файлы хранятся в контейнере libs в учетной записи хранения mystorage, то параметром будет wasbs://libs@mystorage.blob.core.windows.net/.

    Примечание

    В этом документе предполагается, что вы уже создали учетную запись хранения и контейнер BLOB-объектов, а также отправили в него файлы.

    Если учетная запись хранения не создана, создайте ее на портале Azure. Затем с помощью служебной программы, например Azure Storage Explorer, в учетной записи можно создать контейнер и передать в него файлы.

Создание кластера с помощью сценария

  1. Начните подготовку кластера с помощью действий, описанных в статье Создание кластеров Hadoop под управлением Linux в HDInsight, но не завершайте ее. Для создания кластера с помощью этого сценария также можно использовать Azure PowerShell или пакет SDK HDInsight для .NET. Дополнительные сведения об использовании этих методов см. в статье Настройка кластеров HDInsight под управлением Linux с помощью действия сценария. На портале Azure на вкладке Настройка и цены выберите + Добавить действие скрипта.

  2. Если учетная запись хранения, содержащая библиотеку JAR-файлов, будет отличаться от учетной записи, используемой для кластера, для хранилища укажите данные в разделе дополнительных учетных записей хранения.

  3. В разделе Действия скрипта введите следующие сведения:

    Свойство Значение
    Тип скрипта - Custom
    Имя Библиотеки
    URI bash-скрипта https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v01.sh
    Типы узлов Головной, рабочий
    Параметры введите адрес WASB к контейнеру и учетной записи хранения, содержащий JAR-файлы Например, wasbs://libs@mystorage.blob.core.windows.net/.

    Примечание

    Для Apache Spark 2.1 используйте следующий URI скрипта Bash: https://hdiconfigactions.blob.core.windows.net/linuxsetupcustomhivelibsv01/setup-customhivelibs-v00.sh.

  4. Продолжите подготовку кластера, как описано в статье Создание кластеров Hadoop под управлением Linux в HDInsight.

После создания кластера вы сможете использовать JAR-файлы, добавленные с помощью этого сценария из Hive, без инструкции ADD JAR.

Дальнейшие действия

Дополнительные сведения о работе с Hive см. в статье Обзор Apache Hive и HiveQL в Azure HDInsight.