oozie 工作流抛出套接字错误,但在 10 分钟后提交了两次工作流

oozie workflow throws Socket error but submits the workflow twice after 10 minutes

我遇到了一个非常奇怪的问题。我有工作流 xml,其中包含 20 个 fork-join 节点,每个节点包含 4-8 个操作。当我提交这个工作流程时,它等待了 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。例如,如果您的集群是 kerberos 化的,则必须使用与 kerberos 主体匹配的 Oozie URL。如果您来自 kerberized 环境 运行,请尝试使用 principle 和 keytab (kinit user_principle -k -t key_tab) 进行 Kinit,然后在这样的命令中使用 FQN 和 oozie 服务器名称

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

这些日志没有提供任何有意义的信息。所以我将我的工作流文件分成 2 个 xml。我从第一个工作流的最后一个动作调用了第二个工作流。它运行良好,没有任何问题。