Azure Data Lake Store 文件大小限制

我使用以下函数将文件上传到 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 代码示例。


Qyouu
浏览 206回答 3
3回答

拉风的咖菲猫

根据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 块。
打开App,查看更多内容
随时随地看视频慕课网APP