Использование Azure Data Lake Storage Gen2 с кластерами Azure HDInsight

Azure Data Lake Storage 2-го поколения — это служба облачного хранения, созданная на основе хранилища BLOB-объектов Azure и предназначенная для анализа больших данных. Data Lake Storage 2-го поколения сочетает в себе возможности хранилища BLOB-объектов Azure и Azure Data Lake Storage 1-го поколения. Семантику файловой системы, безопасность на уровне каталогов и файлов и адаптируемость — из Azure Data Lake Storage 1-го поколения. А также низкую стоимость, многоуровневое хранение и функции обеспечения высокой доступности и аварийного восстановления — из хранилища BLOB-объектов Azure.

Полное сравнение вариантов создания кластера с использованием Data Lake Storage 2-го поколения см. в статье Сравнение вариантов хранилищ для использования с кластерами Azure HDInsight.

Предупреждение

Счета за кластеры HDInsight выставляются пропорционально в минутах, независимо от их использования. Обязательно удалите кластер, когда завершите его использование. Дополнительные сведения см. в статье Удаление кластера HDInsight с помощью браузера, PowerShell или классического интерфейса Azure CLI.

Доступность Azure Data Lake Storage 2-го поколения

Data Lake Storage 2-го поколения можно использовать в качестве хранилища почти для всех типов кластеров Azure HDInsight — как учетную запись по умолчанию и как дополнительную учетную запись. При этом HBase может иметь только одну учетную запись Data Lake Storage 2-го поколения.

Примечание.

Если вы выбрали Data Lake Storage 2-го поколения в качестве основного хранилища, то не сможете выбрать Data Lake Storage 1-го поколения в качестве дополнительного.

Создание кластеров HDInsight, использующих Data Lake Storage 2-го поколения

По ссылкам ниже вы найдете подробные инструкции по созданию кластеров HDInsight с доступом к Data Lake Storage 2-го поколения.

Управление доступом для Data Lake Storage 2-го поколения в HDInsight

Какие типы разрешений поддерживаются в Azure Data Lake Storage 2-го поколения?

Data Lake Storage 2-го поколения использует модель управления доступом, которая поддерживает как управление доступом на основе ролей в Azure (Azure RBAC), так и POSIX-подобные списки управления доступом (ACL). В Data Lake Storage 1-го поколения списки управления доступом применяются только для управления доступом к данным.

В Azure RBAC используются роли для эффективного назначения наборов разрешений к пользователям, группам и субъектам-службам для ресурсов Azure. Обычно подобные ресурсы Azure ограничиваются ресурсами верхнего уровня (например, учетными записями хранилища BLOB-объектов Azure). Для хранилища BLOB-объектов Azure и Data Lake Storage 2-го поколения этот механизм также был расширен на ресурсы файловой системы.

Сведения о разрешениях для файлов при использовании Azure RBAC см. в разделе Управление доступом на основе ролей в Azure (Azure RBAC).

Сведения о разрешениях для файлов при использовании списков управления доступом см. в разделе Списки управления доступом для файлов и каталогов.

Как контролировать доступ к своим данным в Data Lake Storage 2-го поколения?

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

В службах Azure есть управляемые удостоверения двух типов: назначаемые системой и назначаемые пользователем. Для доступа к Data Lake Storage 2-го поколения HDInsight использует управляемые удостоверения, назначаемые пользователем. A user-assigned managed identity создается как автономный ресурс Azure. С помощью процесса создания Azure создает удостоверение в клиенте Microsoft Entra, доверенном подпиской. После создания удостоверения оно может быть назначено одному или нескольким экземплярам служб Azure.

Управление жизненным циклом назначаемого пользователем удостоверения осуществляется отдельно от жизненного цикла экземпляров служб Azure, для которых оно назначено. Сведения об управляемых удостоверениях см. в статье Что такое управляемые удостоверения для ресурсов Azure?.

Разделы справки задать разрешения для пользователей Microsoft Entra для запроса данных в Data Lake Storage 2-го поколения с помощью Hive или других служб?

Чтобы задать разрешения для пользователей для запроса данных, используйте группы безопасности Microsoft Entra в качестве назначенного участника в списках управления доступом. Не назначайте разрешения на доступ к файлам напрямую отдельным пользователям или субъектам-службам. С помощью групп безопасности Microsoft Entra для управления потоком разрешений можно добавлять и удалять пользователей или субъектов-служб без повторного применения списков управления доступом к всей структуре каталогов. Необходимо добавить или удалить пользователей из соответствующей группы безопасности Microsoft Entra. Списки управления доступом не наследуются, поэтому при их повторном применении нужно обновить список для каждого файла и подкаталога.

Доступ к файлам из кластера

Из кластера HDInsight Есть к файлам в Data Lake Storage 2-го поколения можно получить доступ разными способами.

  • С помощью полного доменного имени. При таком подходе необходимо указать полный путь к файлу, к которому требуется доступ.

    abfs://<containername>@<accountname>.dfs.core.windows.net/<file.path>/
    
  • Используя сокращенный формат пути. При таком подходе путь до корня кластера заменяется на следующий:

    abfs:///<file.path>/
    
  • С помощью относительного пути. При таком подходе указывается только относительный путь к файлу, к которому требуется доступ.

    /<file.path>/
    

Примеры доступа к данным

Примеры основаны на SSH-подключении к головному узлу кластера. В примерах используются все три схемы URI. Замените CONTAINERNAME и STORAGEACCOUNT соответствующими значениями

Несколько команд HDFS

  1. Создайте файл в локальном хранилище.

    touch testFile.txt
    
  2. Создайте каталог в хранилище кластера.

    hdfs dfs -mkdir abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Скопируйте данные из локального хранилища в хранилище кластера.

    hdfs dfs -copyFromLocal testFile.txt  abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  abfs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. Перечислите содержимое каталога в хранилище кластера.

    hdfs dfs -ls abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/sampledata1/
    hdfs dfs -ls abfs:///sampledata2/
    hdfs dfs -ls /sampledata3/
    

Создание таблицы Hive

Для наглядности показаны три расположения файлов. Для фактического выполнения используйте только одну из записей LOCATION.

DROP TABLE myTable;
CREATE EXTERNAL TABLE myTable (
    t1 string,
    t2 string,
    t3 string,
    t4 string,
    t5 string,
    t6 string,
    t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE
LOCATION 'abfs://CONTAINERNAME@STORAGEACCOUNT.dfs.core.windows.net/example/data/';
LOCATION 'abfs:///example/data/';
LOCATION '/example/data/';

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