Создание кластера HDInsight с Azure Data Lake Storage 1-го поколения с помощью шаблона Azure Resource Manager

Узнайте, как с помощью Azure PowerShell настроить кластер HDInsight с Azure Data Lake Storage 1-го поколения в качестве дополнительного хранилища.

В поддерживаемых типах кластеров Data Lake Storage 1-го поколения можно использовать в качестве хранилища по умолчанию или дополнительной учетной записи хранения. Если Data Lake Storage 1-го поколения используется как дополнительное хранилище, в этом случае в качестве учетной записи хранения по умолчанию для кластеров по-прежнему используется Хранилище BLOB-объектов Azure (WASB). Кроме того, относящиеся к кластеру файлы (журналы и т. д.) записываются в хранилище по умолчанию, а данные, которые необходимо обработать, могут храниться в учетной записи Data Lake Storage 1-го поколения. Использование Data Lake Storage 1-го поколения в качестве дополнительной учетной записи хранения не влияет на производительность или возможность выполнять чтение и запись в хранилище из кластера.

Использование Data Lake Storage 1-го поколения в качестве хранилища кластера HDInsight

Ниже приведены некоторые важные сведения об использовании HDInsight с Data Lake Storage 1-го поколения.

  • Возможность создавать кластеры HDInsight, использующие Data Lake Storage 1-го поколения в качестве хранилища по умолчанию, поддерживается для HDInsight версий 3.5 и 3.6.

  • Возможность создавать кластеры HDInsight с доступом к Data Lake Storage 1-го поколения в качестве дополнительного хранилища поддерживается для версий HDInsight 3.2, 3.4, 3.5 и 3.6.

В этой статье мы подготовим кластер Hadoop, в котором Data Lake Storage 1-го поколения будет дополнительным хранилищем. Инструкции по созданию кластера Hadoop с Data Lake Storage 1-го поколения в качестве хранилища по умолчанию см. в статье Создание кластера HDInsight с Data Lake Storage 1-го поколения с помощью портала Azure.

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

Примечание

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Перед началом работы с этим учебником необходимо иметь следующее:

  • Подписка Azure. См. страницу бесплатной пробной версии Azure.

  • Azure PowerShell 1.0 или более поздней версии. Ознакомьтесь со статьей Установка и настройка Azure PowerShell.

  • Microsoft Entra субъект-службу. В этом руководстве приведены инструкции по созданию субъекта-службы в Microsoft Entra ID. Однако для создания субъекта-службы необходимо быть администратором Microsoft Entra. Если вы являетесь администратором Microsoft Entra, вы можете пропустить это предварительное требование и продолжить работу с руководством.

    Если вы не являетесь администратором Microsoft Entra, вы не сможете выполнить действия, необходимые для создания субъекта-службы. В этом случае администратор Microsoft Entra должен сначала создать субъект-службу, прежде чем создавать кластер HDInsight с Data Lake Storage 1-го поколения. При создании субъекта-службы также необходимо использовать сертификат, как описано в разделе Create a service principal with certificate (Создание субъекта-службы с сертификатом).

Создание кластера HDInsight с Data Lake Storage 1-го поколения

Шаблон Resource Manager и предварительные требования для использования шаблона см. в статье Deploy a HDInsight Linux cluster with new Data Lake Store (Развертывание кластера HDInsight Linux с помощью нового Data Lake Storage 1-го поколения) на GitHub. Следуйте инструкциям по этой ссылке, чтобы создать кластер HDInsight с Data Lake Storage 1-го поколения в качестве дополнительного хранилища.

Инструкции по ссылке выше требуют PowerShell. Прежде чем начать работу с ними, обязательно войдите в учетную запись Azure. На своем компьютере откройте новое окно Azure PowerShell и введите следующий фрагмент кода. Когда вам будет предложено войти, введите учетные данные администратора или владельца подписки.

# Log in to your Azure account
Connect-AzAccount

# List all the subscriptions associated to your account
Get-AzSubscription

# Select a subscription
Set-AzContext -SubscriptionId <subscription ID>

Шаблон развертывает ресурсы следующих типов:

Отправка примера данных в Data Lake Storage 1-го поколения

Шаблон Resource Manager создает учетную запись хранения в Data Lake Storage 1-го поколения и связывает ее с кластером HDInsight. На этом этапе необходимо отправить пример данных в Data Lake Storage 1-го поколения. Эти данные потребуются позже при выполнении заданий из кластера HDInsight для получения доступа к данным в учетной записи хранения в Data Lake Storage 1-го поколения. Указания по отправке данных см. в разделе Отправка файла в Data Lake Storage 1-го поколения. Если у вас нет под рукой подходящих для этих целей данных, передайте папку Ambulance Data из репозитория Git для озера данных Azure.

Установка соответствующих списков управления доступом для примера данных

Чтобы убедиться, что переданные примеры данных доступны из кластера HDInsight, необходимо убедиться, что Microsoft Entra приложение, которое используется для установления удостоверения между кластером HDInsight и Data Lake Storage 1-го поколения, имеет доступ к файлу или папке, к которому вы пытаетесь получить доступ. Для этого сделайте следующее.

  1. Найдите имя приложения Microsoft Entra, связанного с кластером HDInsight, и учетную запись хранения с Data Lake Storage 1-го поколения. Один из способов поиска имени — открыть колонку кластера HDInsight, созданную с помощью шаблона Resource Manager, щелкнуть вкладку Удостоверение Microsoft Entra кластера и найти значение Отображаемое имя субъекта-службы.
  2. Теперь предоставьте доступ к этому Microsoft Entra приложению в файле или папке, к которой вы хотите получить доступ из кластера HDInsight. Чтобы установить подходящие списки управления доступом для файла или папки в Data Lake Storage 1-го поколения, см. статью Защита данных, хранимых в Data Lake Storage 1-го поколения.

Выполнение тестовых заданий в кластере HDInsight для использования Data Lake Storage 1-го поколения

После настройки кластера HDInsight выполните в нем тестовые задания, чтобы проверить, доступно ли ему Data Lake Storage 1-го поколения. Для этого запустите пример задания Hive, в котором создается таблица с данными, отправленными ранее в учетную запись хранения в Data Lake Storage 1-го поколения.

В этом разделе вы подключитесь к кластеру HDInsight на платформе Linux по протоколу SSH и выполните пример запроса Hive. При использовании клиента Windows мы рекомендуем использовать служебную программу PuTTY, которую можно скачать на странице https://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

Дополнительные сведения об использовании PuTTY см. в разделе Использование SSH с Hadoop на основе Linux в HDInsight из Windows.

  1. После подключения запустите интерфейс командной строки Hive с помощью следующей команды:

    hive
    
  2. Используя интерфейс командной строки, введите следующие инструкции, чтобы создать таблицу с именем vehicles с помощью примера данных в Data Lake Storage 1-го поколения:

    DROP TABLE vehicles;
    CREATE EXTERNAL TABLE vehicles (str string) LOCATION 'adl://<mydatalakestoragegen1>.azuredatalakestore.net:443/';
    SELECT * FROM vehicles LIMIT 10;
    

    Выходные данные должны иметь следующий вид.

    1,1,2014-09-14 00:00:03,46.81006,-92.08174,51,S,1
    1,2,2014-09-14 00:00:06,46.81006,-92.08174,13,NE,1
    1,3,2014-09-14 00:00:09,46.81006,-92.08174,48,NE,1
    1,4,2014-09-14 00:00:12,46.81006,-92.08174,30,W,1
    1,5,2014-09-14 00:00:15,46.81006,-92.08174,47,S,1
    1,6,2014-09-14 00:00:18,46.81006,-92.08174,9,S,1
    1,7,2014-09-14 00:00:21,46.81006,-92.08174,53,N,1
    1,8,2014-09-14 00:00:24,46.81006,-92.08174,63,SW,1
    1,9,2014-09-14 00:00:27,46.81006,-92.08174,4,NE,1
    1,10,2014-09-14 00:00:30,46.81006,-92.08174,31,N,1
    

Доступ к Data Lake Storage 1-го поколения с помощью команд HDFS

Настроив в кластере HDInsight параметры для работы с Data Lake Storage 1-го поколения, используйте для доступа к хранилищу команды оболочки HDFS.

В этом разделе вы подключитесь к кластеру HDInsight на платформе Linux по протоколу SSH и выполните команды HDFS. При использовании клиента Windows мы рекомендуем использовать служебную программу PuTTY, которую можно скачать на странице https://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

Дополнительные сведения об использовании PuTTY см. в разделе Использование SSH с Hadoop на основе Linux в HDInsight из Windows.

После подключения используйте следующую команду файловой системы HDFS для получения списка файлов в учетной записи хранения в Data Lake Storage 1-го поколения.

hdfs dfs -ls adl://<storage account with Data Lake Storage Gen1 name>.azuredatalakestore.net:443/

Эта команда должна показать файл, который вы ранее отправили в Data Lake Storage 1-го поколения.

15/09/17 21:41:15 INFO web.CaboWebHdfsFileSystem: Replacing original urlConnectionFactory with org.apache.hadoop.hdfs.web.URLConnectionFactory@21a728d6
Found 1 items
-rwxrwxrwx   0 NotSupportYet NotSupportYet     671388 2015-09-16 22:16 adl://mydatalakestoragegen1.azuredatalakestore.net:443/mynewfolder

С помощью команды hdfs dfs -put вы можете передать несколько файлов в Data Lake Storage 1-го поколения, а затем с помощью команды hdfs dfs -ls проверить, успешно ли они передались.

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