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

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

我的目录结构如下:;

  1. |-MyDir
  2. | |--subDir1
  3. | | |---file1.zip
  4. | | |---file2.zip.tmp
  5. | |--subDir2
  6. | | |---file1.zip
  7. | | |---file2.zip.tmp

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

  1. <workflow-app xmlns='uri:oozie:workflow:0.2' name='EndToEndWorkflow-wf'>
  2. <start to='Movefiles' />
  3. <action name="Movefiles">
  4. <fs>
  5. <move source='${SourcePath}' target='${DestinationPath}'/>
  6. </fs>
  7. <ok to="end"/>
  8. <error to="fail"/>
  9. </action>
  10. <kill name="fail">
  11. <message>Java failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
  12. </kill>
  13. <end name="end"/>
  14. </workflow-app>

job.properties具有以下特性:

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

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

xdnvmnnf

xdnvmnnf1#

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

相关问题