自定义udf集成到Hive的源码中

18 篇文章 0 订阅
16 篇文章 0 订阅
[root@hadoop001 tar]#  tar -zxvf hive-1.1.0-cdh5.7.0-src.tar.gz -C /home/hadoop/source/
  • 自定义udf
    在ql/src/java/org/apache/hadoop/hive/ql/udf 目录下
package org.apache.hadoop.hive.ql.udf;

import org.apache.hadoop.hive.ql.exec.UDF;

public class SayHi extends UDF{

    public String evaluate(String input){
        return  "Hi: " + input;
    }

}
  • 修改FunctionRegistry.java
    在ql/src/java/org/apache/hadoop/hive/ql/exec目录下
vi FunctionRegistry.java
...
import org.apache.hadoop.hive.ql.udf.SayHi;
...
system.registerUDF("SayHi", SayHi.class, false);
...
  • 编译
    编译环境配置看以前文章hadoop编译环境
    有可能网络不好需要多试几次,等待时间较长
[hadoop@hadoop001 hive-1.1.0-cdh5.7.0]$ mvn clean package -DskipTests -Phadoop-2 -Pdist

编译成功后会在packaging/target 路径下生成以下包

drwxr-xr-x. 2 root root        28 Apr 17 09:53 antrun
drwxr-xr-x. 3 root root        44 Apr 17 09:54 apache-hive-1.1.0-cdh5.7.0-bin
-rw-r--r--. 1 root root 105537224 Apr 17 09:54 apache-hive-1.1.0-cdh5.7.0-bin.tar.gz
-rw-r--r--. 1 root root  12610957 Apr 17 09:54 apache-hive-1.1.0-cdh5.7.0-jdbc.jar
-rw-r--r--. 1 root root  12528214 Apr 17 09:54 apache-hive-1.1.0-cdh5.7.0-src.tar.gz
drwxr-xr-x. 2 root root         6 Apr 17 09:53 archive-tmp
drwxr-xr-x. 3 root root        22 Apr 17 09:53 maven-shared-archive-resources
drwxr-xr-x. 3 root root        18 Apr 17 09:53 tmp
drwxr-xr-x. 2 root root         6 Apr 17 09:53 warehouse
  • 启动hive查看结果
hive> show functions;
row_number
rpad
rtrim
sayhi
second
sentences
sign
sin
size
...

发现有了 添加成功
测试一下函数

hive> select name, sayhi(name) from tmp;
OK
lingzong	Hi: lingzong

到此, 自定义UDF函数集成到源码就完成了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值