hive - 如何在 HDFS 中查找访问频率较低的文件
问题描述
除了使用 Cloudera Navigator,我如何在 HDFS 中找到访问频率较低的文件。
解决方案
我假设您正在查找文件最后一次访问(打开、读取等)的时间,因为过去越长,访问文件的次数就越少。
因此,您可以通过ls -l -someMoreOptions在 Linux 中非常简单地执行此操作,而在 HDFS 中需要做更多的工作。
也许您可以监视上述文件的/hdfs-audit.log
for 。cmd=open
或者你可以实现一个小函数来读取FileStatus.getAccessTime()
和,正如在是否有办法获取 HDFS 文件的最后访问时间?或如何获取 HDFS 中任何文件的最后访问时间?在 Cloudera 社区。
换句话说,有必要创建一个小程序来扫描所有文件,读出属性
...
status = fs.getFileStatus(new Path(line));
...
long lastAccessTimeLong = status.getAccessTime();
Date lastAccessTimeDate = new Date(lastAccessTimeLong);
...
并订购它。您将能够找到长时间未访问的文件。
推荐阅读
- xamarin.forms - Xamarin.Forms ScrollView ScrollToAsync() 在 iOS 上导致空白内容
- java - 如何设置嵌套列表的初始容量?
- list - Haskell:如何将元素列表拆分为多个列表 [a]->[[a]]
- c - 在 C 中断言关键字
- latex - 如何在突出显示的列中对齐 CENTER(水平顶部)的内容?
- python - 使用 strftime 和 strptime 转换时间格式
- java - 为什么 Java 的 Thread.join() 不等待这段代码中的所有线程都死掉?
- arrays - jq - 成对转换数组
- excel - 如何在 VBA 中使单元格“空白”而不是“空”
- android - Jetifier 未正确解析 Play Services 依赖项