如何使用在 oozie 中执行的脚本访问本地目录?

Kev*_*vin 2 shell hadoop copy oozie

我在我的机器上运行带有 virtualbox 的 CDH4.5。在虚拟机内部,我有一个本地目录:/home/cloudera/logs/abc.log,我想做一个非常简单的事情,我在 oozie 中安排了一个非常简单的脚本来复制abc.log到 HDFS ( /user/cloudera/logs/)。

计划的作业已执行,但在 stderr 中,它向我显示: cannot access /home/cloudera/logs/abc.log: No such file or directory

有没有办法可以使这项工作?因为我想用 oozie 安排一个脚本,每天将文件从本地复制到 HDFS 作为沐浴作业。谢谢!!

Jak*_*ski 5

Oozie shell 操作在随机的 Hadoop 节点上执行,即不在运行 Oozie 服务器的机器上本地执行。

要实现在本地执行的操作,您可以使用 SSH 操作:http : //oozie.apache.org/docs/3.3.2/DG_SshActionExtension.html with localhost。参见例如https://github.com/airawat/OozieSamples/tree/master/oozieProject/workflowSshAction一个很好的完整示例。

或者,您可以启动一个 shell 操作并执行一个脚本,该脚本将通过 SSH 连接到正确的机器。