【问题标题】:Add Azure Data Lake account to existing HDInsight cluster将 Azure Data Lake 帐户添加到现有 HDInsight 群集
【发布时间】:2019-02-26 14:43:31
【问题描述】:

我需要以编程方式向现有集群添加对 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 存储令牌提供程序相同的解密脚本。但是,我在任何地方都没有看到数据湖令牌的加密值。

【问题讨论】:

    标签: azure-data-lake azure-hdinsight


    【解决方案1】:

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

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

    在那篇文章中提到,

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

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

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

    【讨论】:

      【解决方案2】:

      您可以使用本指南:Add additional storage accounts to HDInsight。它对我来说效果很好(我按照 PowerShell 中的说明进行操作)。

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

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-09-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-10-16
            • 2017-10-03
            相关资源
            最近更新 更多