gpt4 book ai didi

java - 维护hadoop中文件创建的顺序-HDFS

转载 作者:行者123 更新时间:2023-12-02 21:56:35 24 4
gpt4 key购买 nike

我有一个在Hadoop DFS中创建文件的代码。这些文件的名称是递增的(例如1,2,3等)。这样做是为了维护所创建文件的正确顺序。但是当我查看文件时,这些文件以随机顺序显示(可能是由于文件大小的变化)。

我也有一个代码作为输入目录路径并读取其下的所有文件。但我担心的是,文件的读取顺序与写入时的顺序不同(读回的顺序与在UI上看到的顺序相同)。

我应该如何实现?在编写文件本身时可以做些事情以保持顺序吗?还是在读取时需要处理它?

提供较长的值,指示上次修改文件的时间。org.apache.hadoop.fs.FileStatus.getModificationTime()这可用于订购文件。但似乎不是可行的解决方案,因为我可能有许多文件。

我们是否有任何API类可以为我执行此操作,甚至可以保留顺序?

最佳答案

您可以从目录中订购文件,如下所示:

File file = new File( path );
File[] list = file.listFiles();

Arrays.sort(list, new Comparator<File>(){
public int compare(File f1, File f2)
{
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
} });

现在列表包含所有由lastModified短路的文件。也许您可能需要以不同的方式订购它们,例如我们的名称或reg。包含1,2,3段的表达式。数。

至于管理文件的写入方式,击败了我。除了创建可能在您的应用程序中造成瓶颈的同步方法外,我什么也没想到。

我希望这有帮助!

关于java - 维护hadoop中文件创建的顺序-HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12933230/

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