使用 OOZIE 在文件到达 NFS 时触发执行的最佳方法

Posted

技术标签:

【中文标题】使用 OOZIE 在文件到达 NFS 时触发执行的最佳方法【英文标题】:Best way to trigger execution at File arrival at NFS using OOZIE 【发布时间】:2017-04-18 18:59:36 【问题描述】:

在1 和2 之后: 不同类型的文件不时进入我的 NFS 目录。我想使用 OOZIE 或任何其他 HDFS 解决方案来触发文件到达事件并根据其类型将文件复制到 HDFS 的特定位置。最好的方法是什么?

【问题讨论】:

Apache Flume...........?? 【参考方案1】:

最佳方式是非常主观的术语。这在很大程度上取决于数据到达特定位置后应该发生什么样的数据、频率以及发生什么样的事情。

Apache Flume 可以监控特定文件夹的数据可用性并将其推送到任何接收器,例如 HDFS按原样。 Flume 非常适合流式传输数据。但它只做一项特定的工作——只是将数据从一个地方移动到另一个地方。

但另一方面,请查看 Oozie Coordinators。协调器具有数据可用性触发器,并且使用 oozie,您可以在数据到达后使用 spark、hive、pig 等工具执行各种 ETL 操作,并使用 shell 操作将其推送到 hdfs。您可以安排作业在特定的时间、频率运行,或者如果出现问题,让作业向您发送电子邮件...

【讨论】:

非常感谢@Pushkr!您能否指导我在哪里可以找到触发文件到达并将文件复制到 HDFS 的特定位置的 Oozie 协调器的代码源? 谷歌是你的朋友。但这里有一些样本 - github.com/yahoo/oozie/wiki/Oozie-Coord-Use-Cases 亲爱的@Pushkr,Oozie 协调器是否支持文件到达 NFS 而不仅仅是 HDFS?请参考:community.cloudera.com/t5/Batch-Processing-and-Workflow/… 好问题。我真的不确定,因为 oozie 文档仅指定它可以接受的数据集 URI 是 hdfs 或 hcatlog。在this link 下查找“数据集 URI 模板类型” 再次感谢,这是我最初提出问题的目标。如果 OOZIE 不支持 NFS,是否有替代方案?

以上是关于使用 OOZIE 在文件到达 NFS 时触发执行的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 oozie 自动化 shell 脚本

在 Linux 上通过 NFS 触发 inotify 事件?

工作流引擎Oozie:workflow

NFS文件系统使用

使用 Oozie 在 Hive 上执行查询时,如何解决“只能使用 kerberos 或 Web 身份验证颁发委托令牌”?

Oozie-coordinator调度