如何在hadoop中重写coordinator.xml?

izj3ouym  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(354)

接下来的情况是:只有在“/user/task”目录中存在文件“\u success”时,才应该触发协调器,但是在创建协调器时只有一个选项“多久一次?”,因此我需要重写coordinator.xml。有人能帮我吗?接下来是coordinator.xml的内容:

  1. <coordinator-app name="My_Coordinator"
  2. frequency="0 0 * * *"
  3. start="${start_date}" end="${end_date}" timezone="America/Los_Angeles"
  4. xmlns="uri:oozie:coordinator:0.2"
  5. >
  6. <controls>
  7. <execution>FIFO</execution>
  8. </controls>
  9. <action>
  10. <workflow>
  11. <app-path>${wf_application_path}</app-path>
  12. <configuration>
  13. <property>
  14. <name>oozie.use.system.libpath</name>
  15. <value>True</value>
  16. </property>
  17. <property>
  18. <name>start_date</name>
  19. <value>2015-11-09T22:46Z</value>
  20. </property>
  21. <property>
  22. <name>end_date</name>
  23. <value>2015-11-16T22:46Z</value>
  24. </property>
  25. </configuration>
  26. </workflow>
  27. </action>
  28. </coordinator-app>
t5zmwmid

t5zmwmid1#

解决这个问题的方法不是更改xml文件,而是简单地使用以下bash脚本:

  1. if ! hadoop fs -test -e /user/task/_SUCCESS; then
  2. echo file not found
  3. exit 1
  4. fi
  5. echo file found
  6. exit 0
a11xaf1n

a11xaf1n2#

您应该在协调器配置中声明一个数据集:

  1. <datasets>
  2. <dataset name="some-name" frequency="${coord:days(1)}" initial-instance="..." timezone="...">
  3. <uri-template>
  4. ...
  5. </uri-template>
  6. </dataset>
  7. </datasets>

工作流程将每天运行。
有关数据集的详细信息。

相关问题