我对Hadoop非常陌生,过去几天一直在努力掌握这一切。我一直在阅读Tom Whites“Hadoop:The Definitive Guide”,并在HortonWorks上阅读各种教程。我还在本地VM上设置了一个Sandbox来玩。
基本上我们将在系统上有一个目录,文件将被转储到。无论何时将文件放在此目录中,都应将其远程移动/复制到我们的HDFS中。
这听起来应该是一个常见的用例,但我似乎无法找到有关此类内容的更多信息。我简要介绍了Oozie和Falcon,因为它们似乎是工作流工具/管理系统。但我真的找不到能满足我想要的东西。我宁愿使用内置于Hadoop中或通常配置它的东西,然后滚动我自己的文件观察器或服务来执行它。
我不知道我是在问错题,找错了地方,还是我对hadoop的理解存在根本缺陷。
有人可以帮我指出正确的方向,或者如果我误解了某些事情,请纠正我的工作方式。
编辑:此blog post建议使用Cron作业定期扫描目录。我没有编写cron作业的经验,但似乎可能只是定期运行文件监视脚本。我希望能找到一些内置于hadoop中的东西,或者至少是一种几乎只使用像Flume或Sqoop这样的hadoop的工具。
答案 0 :(得分:1)
一种方法是使用HDFS保险丝。
您可以将它安装在基于Linux的系统上并使用常规文件监视器
答案 1 :(得分:0)
所以这不是我在上面问题中所描述的完美契合,但我们决定使用Flume。 Flume具有Spool Directory类型,它扫描目录上的文件,然后将它们放入您定义的任何接收器中。我首先将其设置为将它们放入HDFS,但我们现在使用自定义序列化器将它们闪存到HBase中。
我们能够通过将文件推送到Flume代理所在的集群来绕过远程文件监视。虽然我认为如果我们在远程计算机上安装了Flume节点,而不是将文件从远程计算机上的一个代理程序传送到集群上的代理程序,它将完成同样的事情。