Azure Data Lake Storage 的已知问题
本文介绍启用了分层命名空间功能的帐户的限制和已知问题。
注意
在启用了网络文件系统 (NFS) 3.0 支持的帐户中,本文中介绍的某些功能可能不受支持。 若要查看一个在启用各种功能时会显示功能支持影响的表,请参阅 Azure 存储帐户中的 Blob 存储功能支持。
支持的 Blob 存储功能
越来越多的 Blob 存储功能现在兼容有分层命名空间的帐户。 如需完整列表,请参阅 Azure Data Lake Storage 中的 Blob 存储功能。
支持的 Azure 服务集成
Azure Data Lake Storage 支持多种 Azure 服务,你可以使用这些服务来引入数据、执行分析和创建可视化表示形式。 有关支持的 Azure 服务的列表,请参阅支持 Azure Data Lake Storage 的 Azure 服务。
有关详细信息,请参阅支持 Azure Data Lake Storage 的 Azure 服务。
支持的开源平台
多个开源平台支持 Data Lake Storage。 如需完整列表,请参阅支持 Azure Data Lake Storage 的开源平台。
有关详细信息,请参阅支持 Azure Data Lake Storage 的开源平台。
Blob 存储 API
Data Lake Storage API、NFS 3.0 和 Blob API 可以对相同的数据进行操作。
本节介绍使用 blob API、NFS 3.0 和 Data Lake Storage API 对相同数据进行操作的问题和限制。
不能同时使用 Blob API、NFS 3.0 和 Data Lake Storage API 写入到文件的同一实例。 如果使用 Data Lake Storage API 或 NFS 3.0 写入文件,则对获取块列表 blob API 的调用将看不到该文件的块。 唯一的例外是在覆盖时。 使用零截断选项时,可以通过 API 或 NFS 3.0 来覆盖文件/Blob。
使用 Data Lake Storage 操作(如路径 - 创建操作)创建的 blob 不能被使用 PutBlock 或 PutBlockList 操作覆盖,但可以使用 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
或更高版本。
Azure 门户中的存储浏览器
在 Azure 门户中显示的存储浏览器中,无法通过指定路径来访问文件或文件夹。 而是必须浏览文件夹才能找到文件。 因此,如果 ACL 授予用户对文件的读取访问权限,但不授予对包含该文件的逐层文件夹的读取访问权限,那么用户就无法在存储浏览器中查看该文件。
第三方应用程序
如果将使用 REST API 的第三方应用程序与 Data Lake Storage 一起使用,它们将继续工作。 调用 Blob API 的应用程序可能会正常运行。
Windows Azure 存储 Blob (WASB) 驱动程序
目前,WASB 驱动程序设计为仅用于 Blob API,在一些常见场景中会遇到问题。 具体而言,当它是启用了分层命名空间的存储帐户的客户端时会遇到问题。 Data Lake Storage 上的多协议访问不会缓解这些问题。
不支持将 WASB 驱动程序用作启用了分层命名空间的存储帐户的客户端。 因此,建议你在 Hadoop 环境中使用 Azure Blob 文件系统 (ABFS) 驱动程序。 如果你在尝试迁移出采用 Hadoop branch-3 之前的版本的本地 Hadoop 环境,请创建一个 Azure 支持票证,这样我们就可以与你联系,确定适合你和你的组织的正确前进道路。
Blob 的软删除功能
如果已对软删除的文件或目录的父目录重命名,则软删除的项可能无法在 Azure 门户中正确显示。 在这种情况下,可使用 PowerShell 或 Azure CLI 列出和还原软删除的项。
事件
如果你的帐户有事件订阅,则在辅助终结点上执行读取操作会导致错误。 若要解决此问题,请删除事件订阅。 此外,将 Data Lake Storage 终结点 (abfss://URI) 用于启用了非分层命名空间的帐户将不会生成事件,但 blob 终结点 (wasb:// URI) 会生成事件。
提示
只有在启用读取访问异地冗余存储 (RA-GRS) 或读取访问异地区域冗余存储 (RA-GZRS) 的情况下,才可对辅助终结点进行读取访问。