Oozie 将文件从一个 hdfs 位置复制到另一个
Oozie Copy files from one hdfs location to another
我正在使用 oozie fs move
选项将数据从一个 hdfs 文件夹复制到另一个。但是,如果目标存在,fs 命令会按预期将源作为目标目录的子目录。有没有办法避免这种情况,只将 avro 文件从源复制到目标。
如果你必须覆盖一个目录,你可以使用 -f 示例:hdfs dfs -cp -f /sourcepath /Destination path
你可以在 oozie 中反映相同的方式。
如果您只想复制 Avro 文件,请选择 avro 文件的通用扩展名并使用 wild care,像这样 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 了解更多信息。
希望对您有所帮助,如有任何问题,请评论回答。
我正在使用 oozie fs move
选项将数据从一个 hdfs 文件夹复制到另一个。但是,如果目标存在,fs 命令会按预期将源作为目标目录的子目录。有没有办法避免这种情况,只将 avro 文件从源复制到目标。
如果你必须覆盖一个目录,你可以使用 -f 示例:hdfs dfs -cp -f /sourcepath /Destination path
你可以在 oozie 中反映相同的方式。
如果您只想复制 Avro 文件,请选择 avro 文件的通用扩展名并使用 wild care,像这样 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 了解更多信息。
希望对您有所帮助,如有任何问题,请评论回答。