oozie工作流引发Socket错误,但在10分钟后两次提交工作流

问题描述

我面临一个非常奇怪的问题。我有工作流xml,其中包含20个fork-join节点,每个节点包含4-8个action。当我提交此工作流程时,它会等待5-6分钟,然后抛出

"Error: IO_ERROR : java.net.socketException: Connection reset"

但是实际上在后台发生的是它在10分钟后提交一个工作流,在12分钟后提交另一个工作流。因此它最终会触发两次。

我尝试验证XML并返回“ OK”。由于它没有返回工作流,因此我无法进行调试。老实说,我不确定从哪里开始调试。

我也有类似的工作流,但是使用了较少的forks(6),它们都工作正常。但不确定为什么会造成所有麻烦。

解决方法

您在上面遇到的错误看起来更像是客户端。我认为最好检查服务器日志。

oozie job -oozie http://localhost:11000 -info <wfid>
oozie job -oozie http://localhost:11000 -log <wfid>

还可能使用了无效的Oozie URL。例如,如果您的集群已使用kerberized,则必须使用与kerberos主体匹配的Oozie URL。如果您是从kerberized环境中运行,请尝试使用原理和密钥表(kinit user_principle -k -t key_tab)初始化Kinit,然后在这样的命令中使用FQN以及oozie服务器名称

oozie job -oozie http://node_name@domain:11000/oozie -config xxxx -run
,

这些日志未提供任何有意义的信息。因此,我将工作流程文件分为2个xml。我从第一个工作流程的最后一个动作开始调用了第二个工作流程。它工作正常,没有任何问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...