我有一个在hadoop中创建文件的代码。这些文件的名称是递增的(如1、2、3等)。这样做是为了保持所创建文件的正确顺序。但是当我查看这些文件时,这些文件是以随机顺序显示的(可能是由于文件大小的变化)。
我还有一个代码,作为输入目录路径,读取它下面的所有文件。但我担心的是,读取文件的顺序与写入文件的顺序不同(读取的顺序与在ui上看到的顺序相同)。
我应该如何做到这一点?在写文件时,我能做些什么来保持顺序,还是在阅读时需要处理它?
org.apache.hadoop.fs.filestatus.getmodificationtime()给出一个长值,指示上次修改文件的时间。这可以用来订购文件。但似乎不是一个可行的解决方案,因为我可能有任何数量的文件。
我们有什么api类可以为我做到这一点,甚至保持秩序?
1条答案
按热度按时间cnjp1d6j1#
您可以从如下目录订购文件:
现在这个列表包含了所有被lastmodified压缩的文件。也许您需要以不同的方式订购,比如我们的名字或注册号。取1,2,3段的表达式。号码。
至于如何管理文件的编写方式,我觉得很难。除了创建一个同步方法,我什么都想不出来,它可能会在你的应用程序中造成瓶颈。
我希望这有帮助!