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

                   


               


               



发布了88 篇原创文章 · 获赞 56 · 访问量 116万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章