在hive中添加udf較爲簡單,沒遇到什麼麻煩,但是在impala中添加udf有時候會報錯,找不到類,class not found等。
一、class not found解決辦法:
將所缺類的jar包放到impala的lib目錄下,如果是cloudera管理的,通常爲:
/opt/cloudera/parcels/CDH/lib/impala/lib/
然後還需要重啓impala新放入的jar包纔會生效。
二、重啓Impala後,udf會失效,function消失,是因爲創建udf的時候使用的是創建臨時udf的方法,所以重啓後會失效。
--創建臨時udf(重啓後function消失)
create function if not exists phoneencode2(String) returns String
location "hdfs:///user/caixvkun/jinitaimei.jar"
SYMBOL="com.cxk.decode";
--創建永久udf(重啓後function不消失)
create function if not exists phoneencode2
location "hdfs:///user/caixvkun/jinitaimei.jar"
SYMBOL="com.cxk.decode";