Hive UDF 不定时异常处理
-
问题现象
这段时间一直负责数据脱敏,对某些数据处理,写了一系列的udf,打成jar包上传;但是在使用的过程中,发现Hive udf函数对同一条数据作用时,有时成功,有时失败!
-
问题分析
由于对同一条数据到操作有时是成功的,所以,逻辑性肯定没有问题,逻辑上没有问题,那会不会是由于高并发造成的现象,高并发出现问题通常是非常诡异的,虽然udf一般不存在这种问题,但是可以试一试。
-
解决过程
对udf加锁之后,把Text替换成String之后,结果仍然没有作用,最后发现一个规律,在这个udf函数里面嵌套另一个函数,问题就出现了!!!
-
现象再分析
由于涉及到了两个函数,而且还都是自定义UDF,后来想会不会这里面有什么联系,结果发现这两个UDF函数对应的两个jar包,这两个jar包里面存在者相同的类限定名…,在调用这个UDF的时候会调用另一个jar包里具有相同类限定名的类,但是实现有所不同,最终导致,问题时有出现!
-
问题解决
由于两个jar的类名相同,所以修改类名解决该问题。