Azure data lake 将Azure Data Lake帐户添加到现有HDInsight群集

Azure data lake 将Azure Data Lake帐户添加到现有HDInsight群集,azure-data-lake,azure-hdinsight,Azure Data Lake,Azure Hdinsight,我需要以编程方式将对Azure数据湖的引用添加到现有集群。我知道我们可以通过一个脚本操作来实现blob存储,但我还没有找到用ADL实现这一点的文档化方法 我详细研究了用于添加blob storage()的脚本,并了解了它对core-site.xml的操作。但我不知道如何用ADL做类似的事情。特别是,我正在查看core-site.xml文件,并看到fs.azure.datalake.token.provider.script引用与blob存储令牌提供程序相同的解密脚本。但是,我在任何地方都看不到d

我需要以编程方式将对Azure数据湖的引用添加到现有集群。我知道我们可以通过一个脚本操作来实现blob存储,但我还没有找到用ADL实现这一点的文档化方法


我详细研究了用于添加blob storage()的脚本,并了解了它对core-site.xml的操作。但我不知道如何用ADL做类似的事情。特别是,我正在查看core-site.xml文件,并看到fs.azure.datalake.token.provider.script引用与blob存储令牌提供程序相同的解密脚本。但是,我在任何地方都看不到data lake令牌的加密值。

我不确定这是否直接受支持,但这里有一些文章您可以参考。如果没有关于它的文档,而且唯一的解决方法是奇怪的变通方法,我会等到它作为一个完整的功能发布,如果有的话。我确信这个功能请求已经被提出过多次了

那篇文章提到,

如果要使用Data Lake Storage Gen1作为附加存储 对于HDInsight cluster,我们强烈建议您在 您可以按照本文所述创建集群。添加数据湖 存储Gen1作为现有HDInsight群集的附加存储不可用 过程复杂,容易出错

不确定此cmdlet是否可用于添加到现有群集


我不确定这是否得到直接支持,但这里有几篇文章您可以参考。如果没有关于它的文档,而且唯一的解决方法是奇怪的变通方法,我会等到它作为一个完整的功能发布,如果有的话。我确信这个功能请求已经被提出过多次了

那篇文章提到,

如果要使用Data Lake Storage Gen1作为附加存储 对于HDInsight cluster,我们强烈建议您在 您可以按照本文所述创建集群。添加数据湖 存储Gen1作为现有HDInsight群集的附加存储不可用 过程复杂,容易出错

不确定此cmdlet是否可用于添加到现有群集

您可以使用以下指南:。它对我很有效(我遵循了PowerShell中的说明)

请注意,新添加的存储帐户将永远不会出现在Azure中群集的存储帐户刀片中。

您可以使用以下指南:。它对我很有效(我遵循了PowerShell中的说明)


但是请注意,新添加的存储帐户将永远不会出现在Azure中群集的存储帐户刀片中。

没有类似于上面发布的ADLv1/v2的指南

但是,好消息是提供的bash脚本可以重用。 Bash脚本执行一个脚本,您只需要最后两个

将缺少的自定义属性添加到
updateAmbariConfigs
下的
core site.xml
文件中

以下是将
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#
然后,您可以将脚本存储在storage account中一个可公开访问的容器中,然后通过GUI或任何其他首选方式提交脚本


对于ADLv1/v2,没有与上面发布的类似的指南

但是,好消息是提供的bash脚本可以重用。 Bash脚本执行一个脚本,您只需要最后两个

将缺少的自定义属性添加到
updateAmbariConfigs
下的
core site.xml
文件中

以下是将
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#
然后,您可以将脚本存储在storage account中一个可公开访问的容器中,然后通过GUI或任何其他首选方式提交脚本


如果主存储帐户是ADLS Gen2,则只能访问附加的ADLS Gen2存储。通常,您可以使用具有存储Blob数据所有者的用户管理标识设置主存储。如果随后转到另一个启用hns的存储帐户,并将“存储Blob数据参与者”的角色权限添加到同一个用户管理的标识中,则群集将能够访问该存储

hdfs dfs -ls abfs://<container>@<storageaccount>.dfs.core.windows.net
hdfs dfs-ls abfs://@.dfs.core.windows.net

如果主存储帐户是ADLS Gen2,则只能访问附加的ADLS Gen2存储。通常,您可以使用具有存储Blob数据所有者的用户管理标识设置主存储。如果随后转到另一个启用hns的存储帐户,并将“存储Blob数据参与者”的角色权限添加到同一个用户管理的标识中,则群集将能够访问该存储

hdfs dfs -ls abfs://<container>@<storageaccount>.dfs.core.windows.net
hdfs dfs-ls abfs://@.dfs.core.windows.net