gpt4 book ai didi

hadoop - 与本地文件系统相比,序列文件是否有助于提高 HDFS 的读取性能?

转载 作者:可可西里 更新时间:2023-11-01 16:53:02 30 4
gpt4 key购买 nike

我想比较 HDFS 和本地文件系统对 1000 个小文件 (1-2 mb) 的性能。在不使用序列文件的情况下,与本地文件系统相比,HDFS 读取 1000 个文件所花费的时间几乎是其两倍。我听说这里有序列文件 - Small Files Problem in HDFS我想为 HDFS 显示比本地 FS 更好的响应时间来检索这些记录。序列文件会有帮助还是我应该寻找其他东西? (可能是 HBase)

编辑:我正在使用 Java 程序读取此处的文件 HDFS Read though Java

最佳答案

是的,对于简单的文件检索,抓取单个序列文件比抓取 1000 个文件要快得多。从 HDFS 读取时,您会产生更多的开销,包括启动 JVM(假设您正在使用 hadoop fs -get ...),以及从 NameNode 获取每个文件的位置作为网络时间(假设您有多个数据节点)。

序列文件可以被认为是一种容器形式。如果将所有 1000 个文件放入一个序列文件中,则只需要抓取 32 个 block (如果 block 大小设置为 64MB)而不是 1000 个。这将减少位置查找和总网络连接。此时您在读取序列文件时确实遇到了另一个问题。它是一种二进制格式。

HBase 更适合低延迟和随机读取,因此它可能是您更好的选择。请记住,磁盘搜索仍然会发生(除非您从内存中工作),因此在本地读取一堆小文件可能是比使用 HDFS 作为文件存储更好的解决方案。

关于hadoop - 与本地文件系统相比,序列文件是否有助于提高 HDFS 的读取性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31121931/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com