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

时间:2019-02-26 14:43:32

标签: azure-data-lake hdinsight

我需要以编程方式将对Azure数据湖的引用添加到现有群集中。我知道我们可以通过脚本操作使用blob存储来做到这一点,但是我发现没有记录的方法可以使用ADL做到这一点。

我已经详细研究了用于添加blob存储(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引用的是与Blob存储令牌提供程序相同的解密脚本。但是,我在任何地方都看不到数据湖令牌的加密值。

4 个答案:

答案 0 :(得分:0)

我不确定是否直接支持此功能,但是您可以参考以下几篇文章。如果没有相关文档,并且唯一的方法是奇怪的解决方法,我将等到它作为完整功能发布(如果有的话)。我确定此功能请求已被多次提出!

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

在该文章中提到,

  

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

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

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

答案 1 :(得分:0)

您可以使用本指南:Add additional storage accounts to HDInsight。它对我来说效果很好(我遵循PowerShell中的说明)。

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

答案 2 :(得分:0)

对于ADLv1/v2,没有上面发布的adding storage account to HDInsight类似的指南。

但是,好消息是所提供的bash脚本可以重复使用。 Bash脚本执行bunch of steps,而您只需要最后两个。

将缺少的自定义属性添加到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#

然后,您可以将脚本存储在存储帐户中可公开访问的容器中,然后通过GUI或任何其他首选方式提交脚本。

enter image description here

答案 3 :(得分:0)

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

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