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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章