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

标签 shell hadoop copy oozie

我在我的机器上运行 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/

相关文章:

Linux:如果文件路径名已存在于输入文件中,则跳过 grepping 文件

linux - 如何使用 Shell 挑选/修剪字符串的一部分

mobile - 用于移动设备的 Hadoop

java - (Hadoop) : reduce method is not getting executed/called while running mapreduce job

java - 复制具有双向关系的对象

javascript - 使用 jQuery 将 img 元素复制到另一个 div

bash - 如何将一个目录的所有文件移动到具有给定文件数的多个目录中?

linux - find -newer 只检测新复制的文件

hadoop - 无法启动 Hive CLI Hadoop(MapR)

c# - 为什么 .net 没有复制整个目录的方法