0

我在 Oozie 有一个协调员的工作。它使用 java 操作节点调用工作流。

如果我只提交一次这份工作,那么它就可以完美运行。但是,如果我以相同的开始和结束时间提交此作业两次,但主类的 arg1 不同,则两个作业实例都挂在“RUNNING”状态,日志如下所示:

>>> Invoking Main class now >>>

Heart beat
Heart beat
Heart beat
Heart beat
...

如果我杀死其中一个工作,那么另一个工作就会重新开始运行。

该文档指出,可以使用不同的参数提交同一协调器作业的多个实例:http: //archive.cloudera.com/cdh/3/oozie/CoordinatorFunctionalSpec.html#a6.3._Synchronous_Coordinator_Application_Definition

“并发:该作业可以同时运行的最大操作数。该值允许实现和提交协调器应用程序的多个实例,并允许操作赶上延迟处理。默认值为 1 。”

那么我做错了什么?我什至看到来自同一个作业的两个工作流操作实例处于“运行”状态,一旦另一个作业被终止,它就可以正常运行。

4

1 回答 1

1

好的,我发现了问题。它与 HBase 并发和集群中没有足够的任务槽有关。在 mapred-site.xml 文件中设置以下属性可解决此问题:

<name>mapred.tasktracker.map.tasks.maximum</name>
<value>50 </value> 

它类似于这个问题:https ://groups.google.com/a/cloudera.org/forum/?fromgroups=#!topic/cdh-user/v0BHtQ0hlBg

于 2013-01-31T21:02:34.170 回答