Azkaban2.x graph不能正确展示问题

 在使用Azkaban过程中,经常会使用Graph查看各个任务的依赖关系,但使用过程中发现有些不能正确显示,决定排查一下问题。

1.首先保证,这是一个正确的工程

2.F12 控制台 

不能正常显示的Graph 页面,console 标红90个。

大概意思就是 不能识别NAN

3.查看Azkban后台接口数据返回,没有发现问题

 

看来就是第二步,JS出错了。

这里直接写出原因及解决方案: 如果不是此问题,很抱歉未能解决你的问题

原因:在计算任务节点在图中的坐标时候 有一个节点的X轴坐标出现了NaN,导致连锁效应,后面的节点都为NaN.最终未能正确的在graph上渲染zhex这些节点。这个节点为什么X为NaN,有什么特征呢? 此节点没有Out(没有其他节点依赖此节点),而计算X坐标就是取Out中任务节点的x坐标的平均值。 当Out 为空,计算出值NaN。

解决:

js/azkaban/util/layout.js line 399 行

var pos = findAverage(layer[i].out);

修改为 = 》

var pos = 0;

if(layer[i].out).length != 0){

var pos = findAverage(layer[i].out);

 

虽然是一个很小的改但是排查js还是花了一段时间,因为最终结果是Y的坐标为NaN导致的,最后发现是X的一个NaN导致了很多其他节点Y轴为NaN.

现在可以zheq正确显示啦。

 

拓展1.  

导致渲染错的节点示范

 

拓展2 NaN是什么

传送门:https://blog.csdn.net/bianliuzhu/article/details/82586867