所以我有一个每小时都会运行的火花作业。作业处理文件 从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);
}
期望是为了避免重新处理已处理的文件