我在我的机器上运行 CDH4.5 和 virtualbox。在虚拟机内部,我有一个本地目录:/home/cloudera/logs/abc.log
,我想做一件非常简单的事情,我在oozie中安排了一个非常简单的脚本来复制abc.log
到 HDFS (/user/cloudera/logs/
)。
计划的作业已执行,但在 stderr 中,它向我显示:
无法访问/home/cloudera/logs/abc.log:没有这样的文件或目录
有什么办法可以让这个工作成功吗?因为我想用 oozie 安排一个脚本将文件从本地复制到 HDFS 作为每天的沐浴作业。谢谢!!
最佳答案
Oozie shell 操作在随机 Hadoop 节点上执行,即不在运行 Oozie 服务器的本地计算机上执行。
要实现本地执行的操作,您可以使用 SSH 操作:http://oozie.apache.org/docs/3.3.2/DG_SshActionExtension.html与本地主机。参见例如https://github.com/airawat/OozieSamples/tree/master/oozieProject/workflowSshAction一个很好的完整示例。
或者,您可以启动 shell 操作并执行一个脚本,通过 SSH 连接到正确的计算机。
关于shell - 如何使用oozie中执行的脚本访问本地目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527098/