工厂任务错误的处理方法记录 2017 年 6 月 23 日 20:21 非语法错误,
错误如下:
解决(该解决方法是错误的,因为原因不是资源不足):
这个怀疑是资源不足或 map_reduce 资源分配不均引起,加上以下解决 set mapred.reduce.tasks=200;
select 语句最后可附上 distribute by rand() ,具体作用 google 吧
真正解决方法: 上图是由 spark 跑的,对于出的错误详情不作显示,可查看第二次第三次的运行 log ,可能会换一个引擎跑,这时会有如下 log : 看到是因为数据中含有 null 空值所致。实际上这个计算语句中有 ipdic(src_ip) ,而 src_ip 可能是空的,所以出错。 在 where 中加上对 null 的过滤,这个问题就解决了。
2 、
迁移粘贴的大坑
用这个复制任务,然后修改里面的部分参数,保存,没问题,一切正常,再次 check 也是 ok 。但是实际跑起来之后发现里面的配置又回到修改之前的状态了。原因是这个功能就是会同步源的配置到新配置,所以如果新配置要做修改,就只能选择普通粘贴,然后一点点的填写了。
这个不是工厂的坑,而是 sql 的注意点,在过滤一些条件的时候,不能在 left join 的 on 后面加 b 语句的条件,而是要加在 where 后面,具体原因 :
在使用 left jion 时, on 和 where 条件的区别如下: 1 、
on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。
2 、 where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉 .
想要一次批量重跑多个任务,结果每页只能选 20 个,怎么提高效率?直接修改页面内容即可。
在一些任务前加了一个任务,后来想重跑这些任务很久以前的任务,于是分别重新跑,却提示“ parent job not found ”。所以原因应该是找不到这些任务在这个时间点的父任务,因为这时父任务还没创建呢。解决方法: 1.
把父任务撤掉,恢复到原结构,跑完再恢复; 2.
重跑前面的定时器任务,这个尚未实践,试试
500geyicichuxian 502 cuowu ,gaiwei 90ge yici ,jiukeyi le
已使用 Microsoft OneNote 2016 创建。