如何在Spark中跟踪HDFS中已处理的文件

时间:2019-05-13 12:23:58

标签: apache-spark hadoop hdfs

所以我有一个每小时都会运行的火花作业。作业处理文件 从HDFS。因此,我需要知道的是,有一种有效的方法来跟踪HDFS中已处理的那些文件。文件无法移动/删除/重命名

我尝试的是将所有文件名及其最后修改时间存储在地图中,并将地图的最后一项存储在某个地方(说/ user / xyz-> 159283742893472是我的地图的最后一项),因此当作业再次开始,我可以使用存储的详细信息并仅处理超过159283742893472(159283742893472以毫秒为单位)的时间

FileStatus[] fileStatusArray = fileSystem.listStatus(newPath(path));

for (FileStatus fileStatus : fileStatusArray) {
    long modificationTime =fileStatus.getModificationTime();
    filesMap.put(fileStatus.getPath().getName(), modificationTime);
}

期望是为了避免重新处理已处理的文件

0 个答案:

没有答案