有没有办法得到hdfs中所有目录和文件的最后修改时间?我想创建一个显示信息的页面,但是我不知道如何在一个.txt文件中获取最后的mod时间。
hmtdttj41#
您可能需要遍历文件和目录,以获得每个路径的状态—您可以使用下面的代码(只是示例)—但我不确定,如果您有大量的文件和目录,那么效率会有多高。
Configuration conf = new Configuration(); conf.set("fs.default.name", "hdfs://<namenod_ip_address:<port>"); conf.set("mapred.job.tracker", "<jobtracker_ip_address>:<port>"); conf.setBoolean("fs.hdfs.impl.disable.cache", true); FileSystem lfs = FileSystem.get(l_configuration); fs.getFileStatus(new Path("/your/path")).getModificationTime();
m528fe3b2#
看看是否有帮助:
public class HdfsDemo { public static void main(String[] args) throws IOException { Configuration conf = new Configuration(); conf.addResource(new Path("/Users/miqbal1/hadoop-eco/hadoop-1.1.2/conf/core-site.xml")); conf.addResource(new Path("/Users/miqbal1/hadoop-eco/hadoop-1.1.2/conf/hdfs-site.xml")); FileSystem fs = FileSystem.get(conf); System.out.println("Enter the directory name : "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Path path = new Path(br.readLine()); displayDirectoryContents(fs, path); fs.close(); } private static void displayDirectoryContents(FileSystem fs, Path rootDir) { // TODO Auto-generated method stub try { FileStatus[] status = fs.listStatus(rootDir); for (FileStatus file : status) { if (file.isDir()) { System.out.println("DIRECTORY : " + file.getPath() + " - Last modification time : " + file.getModificationTime()); displayDirectoryContents(fs, file.getPath()); } else { System.out.println("FILE : " + file.getPath() + " - Last modification time : " + file.getModificationTime()); } } } catch (IOException e) { e.printStackTrace(); } } }
但是需要注意的是,getmodificationtime()返回自1970年1月1日utc以来文件的修改时间(以毫秒为单位)。
2条答案
按热度按时间hmtdttj41#
您可能需要遍历文件和目录,以获得每个路径的状态—您可以使用下面的代码(只是示例)—但我不确定,如果您有大量的文件和目录,那么效率会有多高。
m528fe3b2#
看看是否有帮助:
但是需要注意的是,getmodificationtime()返回自1970年1月1日utc以来文件的修改时间(以毫秒为单位)。