Azure Data Lake Storage Gen2 的已知问题

本文介绍启用了分层命名空间功能的帐户的限制和已知问题。

注意

在启用了网络文件系统 (NFS) 3.0 支持的帐户中,本文中介绍的某些功能可能不受支持。 若要查看一个在启用各种功能时会显示功能支持影响的表,请参阅 Azure 存储帐户中的 Blob 存储功能支持

支持的 Blob 存储功能

越来越多的 Blob 存储功能现在兼容有分层命名空间的帐户。 如需完整列表,请参阅 Azure Data Lake Storage Gen2 中可用的 Blob 存储功能

支持的 Azure 服务集成

Azure Data Lake Storage Gen2 支持多个可用于引入数据、执行分析和创建可视化表示形式的 Azure 服务。 有关受支持的 Azure 服务的列表,请参阅支持 Azure Data Lake Storage Gen2 的 Azure 服务

有关详细信息,请参阅支持 Azure Data Lake Storage Gen2 的 Azure 服务

支持的开源平台

多个开源平台支持 Data Lake Storage Gen2。 有关完整列表,请参阅支持 Azure Data Lake Storage Gen2 的开源平台

有关详细信息,请参阅支持 Azure Data Lake Storage Gen2 的开源平台

Blob 存储 API

可对相同的数据运行 Data Lake Storage Gen2 API、NFS 3.0 和 Blob API。

本部分介绍了同时使用 Blob API、NFS 3.0 和 Data Lake Storage Gen2 API 对相同的数据执行操作时的问题和限制。

  • 不能同时使用 Blob API、NFS 3.0 和 Data Lake Storage API 写入到文件的同一实例。 如果使用 Data Lake Storage Gen2 API、Blob API 或 NFS 3.0 向某个文件进行写入,则调用获取 Block 列表 Blob API 时看不到该文件的块。 唯一的例外是在覆盖时。 使用零截断选项时,可以通过 API 或 NFS 3.0 来覆盖文件/Blob。

    无法使用 PutBlockPutBlockList 操作来覆盖使用 Data Lake Storage Gen2 操作(例如“路径 - 创建”操作)创建的 Blob,不过可以使用 PutBlob 操作覆盖它们,但必须遵守 PutBlob 使用的相应 api 版本规定的最大允许 Blob 大小。

  • 如果在不指定分隔符的情况下使用列出 Blob 操作,则结果会同时包括目录和 blob。 如果选择使用分隔符,请只使用正斜杠 (/)。 这是唯一支持的分隔符。

  • 如果你使用删除 Blob API 来删除某个目录,则仅当该目录为空时才会将其删除。 这意味着,不能使用 Blob API 以递归方式删除目录。

这些 Blob REST API 不受支持:

具有分层命名空间的帐户不支持非托管 VM 磁盘。 若要在存储帐户中启用分层命名空间,请将非托管 VM 磁盘置于未启用分层命名空间功能的存储帐户中。

支持以递归方式设置访问控制列表 (ACL)

将 ACL 更改以递归方式从父目录应用到子项的功能已正式发布。 在此功能的当前版本中,你可以使用 Azure 存储资源管理器、PowerShell、Azure CLI、.NET、Java 和 Python SDK 应用 ACL 更改。 Azure 门户中尚未提供此支持。

访问控制列表 (ACL) 和匿名读取访问

如果已将匿名读取访问授予容器,则 ACL 对该容器或该容器中的文件没有影响。 这仅影响读取请求。 写入请求仍将遵守 ACL。 建议对所有 Blob 数据请求要求授权。

AzCopy

仅使用最新版本的 AzCopy (AzCopy v10)。 不支持早期版本的 AzCopy,例如 AzCopy v8.1。

Azure 存储资源管理器

仅使用版本 1.6.0 或更高版本。

第三方应用程序

对于使用 REST API 保持正常运行的第三方应用程序,如果在 Data Lake Storage Gen2 中使用这些应用程序,则它们可继续正常运行。 调用 Blob API 的应用程序可能会正常运行。

Windows Azure 存储 Blob (WASB) 驱动程序

目前,WASB 驱动程序设计为仅用于 Blob API,在一些常见场景中会遇到问题。 具体而言,当它是启用了分层命名空间的存储帐户的客户端时会遇到问题。 Data Lake Storage 上的多协议访问不会缓解这些问题。

不支持将 WASB 驱动程序用作启用了分层命名空间的存储帐户的客户端。 因此,建议你在 Hadoop 环境中使用 Azure Blob 文件系统 (ABFS) 驱动程序。 如果你在尝试迁移出采用 Hadoop branch-3 之前的版本的本地 Hadoop 环境,请创建一个 Azure 支持票证,这样我们就可以与你联系,确定适合你和你的组织的正确前进道路。

Blob 的软删除功能

如果已对软删除的文件或目录的父目录重命名,则软删除的项可能无法在 Azure 门户中正确显示。 在这种情况下,可使用 PowerShellAzure CLI 列出和还原软删除的项。

事件

如果你的帐户有事件订阅,则在辅助终结点上执行读取操作会导致错误。 若要解决此问题,请删除事件订阅。 此外,将 Data Lake Storage 终结点 (abfss://URI) 用于启用了非分层命名空间的帐户将不会生成事件,但 blob 终结点 (wasb:// URI) 会生成事件。

提示

只有在启用读取访问异地冗余存储 (RA-GRS) 或读取访问异地区域冗余存储 (RA-GZRS) 的情况下,才可对辅助终结点进行读取访问。