下载源码包
1
2wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0-src.tar.gz
tar -zxf hive-1.1.0-cdh5.7.0-src.tar.gz找到UDF代码目录
1
2cd ql/src/java/org/apache/hadoop/hive/ql/udf/
------这里我们可以看到好多的UDF代码,以UDFXXX.java开头
添加代码,注意package
1
2
3
4
5
6
7
8
9
10
11
12
13helloUDF.java
package org.apache.hadoop.hive.ql.exec.UDF;
public class HelloUDF extends UDF{
public String evaluate(String input){
return "Hello:"+input;
}
public String evaluate(String input1,String input2){
return "Hello:"+input1+"=>"+input2;
}
}注册函数
1
2cd ql/src/java/org/apache/hadoop/hive/ql/exec/
vi FunctionRegistry.java
1 | 104 import org.apache.hadoop.hive.ql.udf.HelloUDF; |
- 编译
1
mvn clean package -DskipTests -Phadoop-2 -Pdist
两种使用方式
- 使用编译后的包重新部署
- 将编译后的/lib/hive-exec-1.1.0-cdh5.7.0.jar覆盖现有的hivejar包