Oozie将文件从一个hdfs位置复制到另一个

时间:2017-12-04 16:14:21

标签: hadoop oozie

我正在使用oozie fs move选项将数据从一个hdfs文件夹复制到另一个文件夹。但是,如果目标存在,则fs命令将source作为目标目录的子项按预期方式放置。有没有办法避免这种情况,只将avro文件从源文件复制到目标文件。

1 个答案:

答案 0 :(得分:1)

如果您必须覆盖目录,可以使用-f示例:hdfs dfs -cp -f /sourcepath /Destination path您可以在oozie中以相同的方式反映。

如果您只想复制Avro文件,请选择avro文件的常用扩展名并使用野外护理,例如hdfs dfs -cp -f sourcepath/*.avro /Destnation_path

没有直接的方法来覆盖oozie fs中的文件夹,你应该首先删除文件夹并移动那样你没有子目录

<workflow-app name="[WF-DEF-NAME]" xmlns="uri:oozie:workflow:0.1">
...
<action name="[NODE-NAME]">
    <fs>
        <delete path='[PATH]'/>
        ...
        <mkdir path='[PATH]'/>
        ...
        <move source='[SOURCE-PATH]' target='[TARGET-PATH]'/>
        ...
        <chmod path='[PATH]' permissions='[PERMISSIONS]' dir-files='false' />
        ...
    </fs>
    <ok to="[NODE-NAME]"/>
    <error to="[NODE-NAME]"/>
</action>
...

有关详情,请参阅pastebin

希望得到这个帮助,如果您有任何问题,请给出答案。