Поделиться через


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

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

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

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

Оплата за кластеры HDInsight начисляется по минутам, даже если они не используются. Обязательно удалите кластер, когда завершите его использование. См. как удалить кластер HDInsight.

Доступность Data Lake Storage Gen2

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

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

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

В 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 Gen2, используя Hive или другие службы?

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

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

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

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

    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://[email protected]/sampledata1/
    hdfs dfs -mkdir abfs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. Скопируйте данные из локального хранилища в хранилище кластера.

    hdfs dfs -copyFromLocal testFile.txt  abfs://[email protected]/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  abfs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. Показать содержимое каталога на хранилище кластера.

    hdfs dfs -ls abfs://[email protected]/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://[email protected]/example/data/';
LOCATION 'abfs:///example/data/';
LOCATION '/example/data/';

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