您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hive中怎么添加自定義函數”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Hive中怎么添加自定義函數”吧!
環境介紹:CentOS7+hive-1.1.0-cdh6.7.0+Maven3.3.9
1、下載源碼
hive-1.1.0-cdh6.7.0-src.tar.gz
http://archive.cloudera.com/cdh6/cdh/5/hive-1.1.0-cdh6.7.0-src.tar.gz
2、解壓源碼
tar -zxvf hive-1.1.0-cdh6.7.0-src.tar.gz -C /home/hadoop/
cd /home/hadoop/hive-1.1.0-cdh6.7.0
3、將HelloUDF.java文件增加到HIVE源碼中
cp HelloUDF.java /home/hadoop/hive-1.1.0-cdh6.7.0/ql/src/java/org/apache/hadoop/hive/ql/udf/
4、修改FunctionRegistry.java 文件
cd /home/hadoop/hive-1.1.0-cdh6.7.0/ql/src/java/org/apache/hadoop/hive/ql/exec/
vi FunctionRegistry.java
在import中增加:import org.apache.hadoop.hive.ql.udf.HelloUDF;
在文件頭部 static 塊中添加:system.registerUDF("helloUDF", HelloUDF.class, false);
5、重新編譯
cd /home/hadoop/hive-1.1.0-cdh6.7.0
mvn clean package -DskipTests -Phadoop-2 -Pdist
6、編譯結果全部為:BUILD SUCCESS
文件所在目錄:/home/hadoop/hive-1.1.0-cdh6.7.0/hive-1.1.0-cdh6.7.0/packaging/target
7、配置hive環境
配置hive環境時,可以全新配置或將編譯后帶UDF函數的包復制到舊hive環境中:
7.1、全部配置:參照之前文檔。。。。。。。。。。。。。。
7.2、將編譯后帶UDF函數的包復制到舊hive環境
到/home/hadoop/hive-1.1.0-cdh6.7.0/packaging/target/apache-hive-1.1.0-cdh6.7.0-bin/apache-hive-1.1.0-cdh6.7.0-bin/lib下,找到hive-exec-1.1.0-cdh6.7.0.jar包,并將舊環境中對照的包替換掉
命令:
cd /home/hadoop/app/hive-1.1.0-cdh6.7.0/lib
mv hive-exec-1.1.0-cdh6.7.0.jar hive-exec-1.1.0-cdh6.7.0.jar_bak
cd /home/hadoop/hive-1.1.0-cdh6.7.0/packaging/target/apache-hive-1.1.0-cdh6.7.0-bin/apache-hive-1.1.0-cdh6.7.0-bin/lib
cp hive-exec-1.1.0-cdh6.7.0.jar /home/hadoop/app/hive-1.1.0-cdh6.7.0/lib
最終啟動hive
8、測試:
hive
hive (default)> show functions ; -- 能查看到有 helloudf
感謝各位的閱讀,以上就是“Hive中怎么添加自定義函數”的內容了,經過本文的學習后,相信大家對Hive中怎么添加自定義函數這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。