为了账号安全,请及时绑定邮箱和手机立即绑定

Azure Data Lake Store 文件大小限制

Azure Data Lake Store 文件大小限制

C#
Qyouu 2021-07-01 10:04:47
我使用以下函数将文件上传到 Azure Data Lake Store:DataLakeStoreFileSystemManagementClient.FileSystem.UploadFile(store, filePath, key, overwrite: true);对于仅大于 ~4MB 的文件,它给了我以下错误:"Found a record that exceeds the maximum allowed record length around offset 4194304"Microsoft.Azure.Management.DataLake.Store.TransferFailedException:   at Microsoft.Azure.Management.DataLake.Store.FileSystemOperations.UploadFile (Microsoft.Azure.Management.DataLake.Store, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)如果这是 Azure Data Lake 中某处的设置,或者我可以在客户端进行调整,任何人都可以提供任何见解吗?谢谢!我在谷歌上搜索了错误,唯一返回的是 Java 代码示例。
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

根据Azure 订阅限制和配额

Azure Data Lake Store 是用于大数据分析工作负载的企业级超大规模存储库。Data Lake Store 使您能够在一个地方捕获任何大小、类型和摄取速度的数据,以进行操作和探索性分析。您可以在 Data Lake Store 帐户中存储的数据量没有限制。

而且,根据“使用 Azure Data Lake Store 的最佳实践”一章中的“性能和规模考虑”一章,“使用 Data Lake Store 驱动程序缓冲区优化“写入””段落

要在从 Hadoop 写入数据湖存储时优化性能并降低 IOPS,请执行尽可能接近数据湖存储驱动程序缓冲区大小的写入操作。在刷新之前尽量不要超过缓冲区大小,例如在使用 Apache Storm 或 Spark 流式处理工作负载进行流式处理时。从 HDInsight/Hadoop 写入 Data Lake Store 时,重要的是要知道Data Lake Store 有一个带有 4-MB 缓冲区的驱动程序。与许多文件系统驱动程序一样,可以在达到 4 MB 大小之前手动刷新此缓冲区。如果没有,如果下一次写入超过缓冲区的最大大小,它会立即刷新到存储。在可能的情况下,在按计数或时间窗口同步/刷新策略时,您必须避免缓冲区溢出或严重不足。

回答
根据这个回答,使用DataLakeStoreUploader不会出现这个问题。主要原因可能是因为他们为你做冲洗。因此,您可能使用 FileSystem.UploadFile 方法离金属太近了;)

根据这篇文章,另一种解决方案应该是从一个空文件开始,并在刷新之前向其中添加 < 4mb 块。


查看完整回答
反对 回复 2021-07-03
  • 3 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信