Добавить учетную запись Azure Data Lake в существующий кластер HDInsight

Мне нужно программно добавить ссылку на озеро данных Azure в существующий кластер. Я знаю, что мы можем сделать это с хранилищем больших двоичных объектов с помощью действия сценария, но я не нашел документированного способа сделать это с помощью ADL.

Я подробно рассмотрел сценарий, который используется для добавления хранилища больших двоичных объектов ( https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh), и понял, какие действия он выполняет. на core-site.xml. Но я не могу понять, как сделать что-то подобное с ADL. В частности, я просматриваю файл core-site.xml и вижу, что fs.azure.datalake.token.provider.script ссылается на тот же сценарий дешифрования, что и поставщик токенов хранилища больших двоичных объектов. Однако я нигде не вижу зашифрованного значения для токена озера данных.

1 ответ

Вы можете использовать это руководство: Добавить дополнительные учетные записи в HDInsight. У меня это хорошо работало (я следовал инструкциям в PowerShell).

Имейте в виду, что вновь добавленные учетные записи хранения никогда не появятся в блейде учетных записей хранения кластера в Azure.

Я не уверен, поддерживается ли это напрямую, но вот несколько статей, на которые вы можете ссылаться. Если на нем нет документации и единственный способ сделать это - странные обходные пути, я бы подождал, пока она не будет выпущена в качестве полной функции, если вообще когда-либо. Я уверен, что этот запрос был предложен несколько раз!

https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-hdinsight-hadoop-use-powershell

В этой статье упоминается,

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

Не уверен, что этот командлет можно использовать для добавления в существующий кластер,

https://docs.microsoft.com/en-us/powershell/module/azurerm.hdinsight/Add-AzureRmHDInsightClusterIdentity?view=azurermps-6.13.0&viewFallbackFrom=azurermps-3.8.0

Нет аналогичного руководства для ADLv1/v2как и для добавления учетной записи хранения в HDInsight, указанной выше.

Но хорошая новость в том, что предоставленный сценарий bash можно использовать повторно. Сценарий Bash выполняет несколько шагов, и вам нужны только последние два.

Добавьте недостающие настраиваемые свойства для добавления к core-site.xml файл под updateAmbariConfigs.

Вот настраиваемые свойства, необходимые для использования ADLv2 хранилище в качестве дополнительного хранилища для вашего кластера:

fs.azure.account.auth.type.#yourADLv2storagename#.dfs.core.windows.net=OAuth
fs.azure.account.oauth.provider.type.#yourADLv2storagename#.dfs.core.windows.net=org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
fs.azure.account.oauth2.client.endpoint.#yourADLv2storagename#.dfs.core.windows.net=https://login.microsoftonline.com/#yourtenantID#/oauth2/token
fs.azure.account.oauth2.client.id.#yourADLv2storagename#.dfs.core.windows.net=#yourApplicationRegistrationIDUsedForADLaccess#
fs.azure.account.oauth2.client.secret.#yourADLv2storagename#.dfs.core.windows.net=#clientSecretForAppRegistrationAbove#

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

Вы можете получить доступ к дополнительному хранилищу ADLS Gen2, только если основной учетной записью хранения была ADLS Gen2. Обычно вы настраиваете основное хранилище с помощью удостоверения, управляемого пользователем, с владельцем данных BLOB-объекта хранилища. Если затем вы перейдете к другой учетной записи хранения с поддержкой hns и добавите разрешение роли "Контроллер данных BLOB-объектов хранилища" для того же идентификатора, управляемого пользователем, кластер сможет получить доступ к хранилищу

hdfs dfs -ls abfs://<container>@<storageaccount>.dfs.core.windows.net
Другие вопросы по тегам