我手头有问题,需要我监视正在访问的文件集。这些文件都可以从Hadoop文件系统和Linux机器上的文件系统访问。
我需要不断监控和整合来自两个文件系统的日志,以获取一组特定的文件。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
从Apache Hadoop 2.6.0开始(或者对于Cloudera CDH用户,从5.2.0开始),HDFS添加了类似inotify的功能。这个JIRA带有a design document,详细说明了HDFS支持这种需求的实现形式。
来自同一实现的测试用例进一步说明了如何使用该功能:TestDFSInotifyEventInputStream
还要记住,默认情况下,鉴于其WORM性能语义,HDFS的访问时间粒度(从而跟踪)非常低。对于属性dfs.namenode.accesstime.precision
,您可能希望减少NameNode配置的值,默认值为1小时(以毫秒为单位)。