【问题标题】:Move file from HDFS one directory to other directory in HDFS using OOZIE?使用OOZIE将文件从HDFS一个目录移动到HDFS中的另一个目录?
【发布时间】:2016-12-10 17:30:20
【问题描述】:

我正在尝试将文件从 HDFS 一个目录复制到 HDFS 中的另一个目录,在 shell 脚本的帮助下,作为 oozie Job 的一部分,但我无法通过 oozie 复制它。

我们可以使用 oozie 将文件从 HDFS 一个目录复制到 HDFS 中的另一个目录。

when i am running the oozie job, i am not any getting error.

it is showing status SUCCEEDED but file is not copying to destination directory.

oozie 文件如下。

test.sh

#!/bin/bash
echo "listing files in the current directory, $PWD"
sudo hadoop fs -cp /user/cloudera/RAVIOOZIE/input/*  /user/cloudera/RAVIOOZIE/output/
ls  # list files

我的 workflow.xml 是

<workflow-app name="RAMA" xmlns="uri:oozie:workflow:0.5">
<start to="shell-381c"/>
<kill name="Kill">
    <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="shell-381c">
    <shell xmlns="uri:oozie:shell-action:0.1">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <exec>/user/cloudera/test.sh</exec>
        <file>/user/cloudera/test.sh#test.sh</file>
          <capture-output/>
    </shell>
    <ok to="End"/>
    <error to="Kill"/>
</action>
<end name="End"/>

还有我的job.properties

oozie.use.system.libpath=True
security_enabled=False
dryrun=True
jobTracker=localhost:8032
nameNode=hdfs://quickstart.cloudera:8020
oozie.wf.application.path=${nameNode}/user/cloudera/test/

请帮忙。为什么文件没有复制到我的目标导演。

请让我知道我错过了什么。

【问题讨论】:

  • 您的 workflow.xml 和 shell 脚本看起来不错。您可能必须仔细查找错误 - 即使它说成功。你在 shell 脚本中的 echo 语句是否被打印出来了?
  • 我可以在“jobhistory/logs”中看到 echo 语句,但它没有显示任何错误。它显示在日志“Oozie Launcher,捕获输出数据:========= =============你好,cloudera。我想列出你的一些文件,列出当前目录中的文件,/var/lib/hadoop-yarn/cache/yarn/nm-local- dir/usercache/cloudera/appcache/application_1470284226059_0022/container_1470284226059_00ror.ie"
  • 您的问题被标记为“移动文件”,但您的帖子实际上是关于复制文件。如果你真的想移动这些文件,你应该试试原生的 Oozie HDFS Action oozie.apache.org/docs/4.2.0/…

标签: shell hadoop cloudera oozie oozie-coordinator


【解决方案1】:

@Samson 在 cmets 中提到:

如果您想使用 oozie 执行 hadoop 操作,您应该使用 hdfs action 而不是 shell 操作。


我不确定您为什么没有收到错误,但这里有一些关于可能发生的猜测:

你给 oozie 启动一个 shell 动作的任务,它成功启动了 shell 动作并报告成功。然后 shell 操作失败,但这不是 oozies 问题。

【讨论】:

    猜你喜欢
    • 2021-04-22
    • 2018-05-24
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2018-05-18
    • 2019-09-26
    相关资源
    最近更新 更多