hive UDF开发注意事项

在开发Hive UDF时,应注意不定义构造函数以防止资源初始化导致的错误。资源应在evaluate函数中一次性标记初始化。当遇到第三方jar包依赖问题,可以采取手动添加jar到Hive会话、分发到Hadoop集群或使用fatjar插件进行打包解决。
摘要由CSDN通过智能技术生成

     1)hive UDF 最好不要定义构造函数,因为构造函数中的一些资源初始化工作(如读取外部资源),会导致错误信息:FAILED: RuntimeException java.lang.reflect.InvocationTargetException,资源初始化的功能最好在evaluate函数中执行(通过标记的方法保证只执行一次)

     2)在开发的hive UDF中,有时候需要使用到第三方jar包,一般的做法是把第三方jar包和udf一起打包,结果在测试udf时,hive报错:java.lang.ClassNotFoundException

     解决办法:

             1)在运行hive hql时,手动将udf所需要的jar包 通过add语句 添加(测试通过);

              2)将udf所需要的jar包 手动分发到 hadoop集群的所有服务器上hadoop的lib目录下

             3)安装eclipse 插件:fatjar (测试通过)


     Fat Jar 打包方法:

                    1)创建META-INF文件夹,在该文件夹中创建:MANIFEST.MF文件,在文件中输入:Manifest-Version: 1.0

                    2)使用FAT JAR插件打包:

                   

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值