hive UDF开发注意事项

     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插件打包:

                    hive UDF开发注意事项_第1张图片


                hive UDF开发注意事项_第2张图片


                hive UDF开发注意事项_第3张图片



你可能感兴趣的:(hive UDF开发注意事项)