我们可以在移动文件时在oozie fs操作中应用pathfilter吗

pbgvytdp  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(443)

我的目录结构如下:;

|-MyDir
 |   |--subDir1
 |   |   |---file1.zip
 |   |   |---file2.zip.tmp
 |   |--subDir2
 |   |   |---file1.zip
 |   |   |---file2.zip.tmp

我必须将整个子目录连同文件一起移动到另一个位置,前提是它不包含任何以.zip.tmp扩展名结尾的文件。换句话说,我必须在移动时忽略包含.zip.tmp文件的子目录。我的工作流程如下:

<workflow-app xmlns='uri:oozie:workflow:0.2' name='EndToEndWorkflow-wf'>
 <start to='Movefiles' />

  <action name="Movefiles">
   <fs>
    <move source='${SourcePath}' target='${DestinationPath}'/>
   </fs>
   <ok to="end"/>
   <error to="fail"/>
  </action>
  <kill name="fail">
   <message>Java failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
   </kill>
    <end name="end"/>
</workflow-app>

job.properties具有以下特性:

nameNode=hdfs://XXX:8020
jobTracker=XXX:8032
queueName=default
oozie.use.system.libpath=true
oozie.coord.application.path=${nameNode}/user/hdfs/MyOozieTest
SourcePath=${nameNode}/user/hdfs/Automation/*/
DestinationPath=${nameNode}/user/hdfs/MovedFlumeFiles/

但这不会忽略.zip.tmp文件。有人对此有什么有用的想法吗?

xdnvmnnf

xdnvmnnf1#

我解决了上述问题。我已经编写了使用hadoopapi的java代码。使用filesystem.globstatus(path,pathfilter)过滤文件,使用filesysem.rename(scr,dest)函数移动文件。

相关问题