【问题标题】:Oozie Copy files from one hdfs location to anotherOozie 将文件从一个 hdfs 位置复制到另一个
【发布时间】:2018-05-18 03:56:41
【问题描述】:

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

【问题讨论】:

  • 你不应该使用hadoop fs -mv吗? oozie fs 不是我所看到的有效命令

标签: hadoop oozie


【解决方案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>
...

请参阅oozie documentation 了解更多信息。

希望对您有所帮助,如果您有任何问题,请在答案中发表评论。

【讨论】:

  • hdfs dfs -cp -f sourcepath/*.avro /Destnation_path 选项工作正常。谢谢
猜你喜欢
  • 1970-01-01
  • 2021-07-29
  • 2015-01-30
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
相关资源
最近更新 更多