我试图了解HDFS如何实现concat操作并深入到code的下一段。
从这个实现中,在我看来,concat只是对目标文件的Inode的元操作,并且不移动实际的块。我在想是否会导致碎片+增加寻道时间,因为不同的块会在磁盘上的不同位置(考虑磁盘)。这个假设是否正确?如果是,我们可以避免这种情况吗?
答案 0 :(得分:0)
经过几次实验后,我找到了自己问题的答案。在非常频繁的文件连接操作(大约每分钟1k)之后,数据节点开始在一天内抱怨太多块,这让我相信这确实会导致碎片和磁盘上块数量的增加。我使用的解决方案是编写一个单独的作业,将这些文件连接(并压缩)到一个可拆分的存档(注意gzip不可拆分!)。