Добавить учетную запись 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.
Я не уверен, поддерживается ли это напрямую, но вот несколько статей, на которые вы можете ссылаться. Если на нем нет документации и единственный способ сделать это - странные обходные пути, я бы подождал, пока она не будет выпущена в качестве полной функции, если вообще когда-либо. Я уверен, что этот запрос был предложен несколько раз!
В этой статье упоминается,
Если вы собираетесь использовать Data Lake Storage Gen1 в качестве дополнительного хранилища для кластера HDInsight, мы настоятельно рекомендуем вам сделать это при создании кластера, как описано в этой статье. Добавление хранилища озера данных Gen1 в качестве дополнительного хранилища в существующий кластер HDInsight - сложный процесс, подверженный ошибкам.
Не уверен, что этот командлет можно использовать для добавления в существующий кластер,
Нет аналогичного руководства для 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