编译hive源码-UDF函数

hive源码下载地址

hive版本:hive-1.1.0-cdh5.7.0
百度网盘:链接:https://pan.baidu.com/s/1vKYb3lPIKsZupG3xg8gDQg 提取码:4k1n
官网下载:http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0-src.tar.gz

解压源码包

[hadoop@hadoop614 Demonstration]$ ll
总用量 14312
-rw-r--r--. 1 hadoop hadoop 14652104 4月  22 23:12 hive-1.1.0-cdh5.7.0-src.tar.gz

[hadoop@hadoop614 Demonstration]$ tar -zxvf hive-1.1.0-cdh5.7.0-src.tar.gz 

[hadoop@hadoop614 Demonstration]$ ll
总用量 14316
drwxrwxr-x. 31 hadoop hadoop     4096 3月  24 2016 hive-1.1.0-cdh5.7.0
-rw-r--r--.  1 hadoop hadoop 14652104 4月  22 23:12 hive-1.1.0-cdh5.7.0-src.tar.gz

配置pom文件

  • 添加阿里源
[hadoop@hadoop614 Demonstration]$ cd hive-1.1.0-cdh5.7.0
[hadoop@hadoop614 hive-1.1.0-cdh5.7.0]$ vim pom.xml
 <repositories>
   <!-- This needs to be removed before checking in-->
	<repository>
	    <id>alimaven</id>
	    <name>aliyun maven</name>
	    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	    <releases>
	      <enabled>true</enabled>
	    </releases>
	    <snapshots>
	      <enabled>false</enabled>
	    </snapshots>
	  </repository>
......# 其他配置不动
</repositories>

编辑源码

编辑UDF函数

[hadoop@hadoop614 hive-1.1.0-cdh5.7.0]$ cd ql/src/java/org/apache/hadoop/hive/ql/udf/
[hadoop@hadoop614 udf]$ vim UDFsayHello.java
package org.apache.hadoop.hive.ql.udf;

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

public class UDFsayHello extends UDF {
    public String evaluate(String input) {
        return "Hello:" + input;
    }

}

注册UDF函数

[hadoop@hadoop614 udf]$ cd ../exec/
[hadoop@hadoop614 exec]$ vim FunctionRegistry.java
# 在配置中引入刚刚编辑的UDF(第135行左右)
import org.apache.hadoop.hive.ql.udf.UDFsayHello;
# 在static中注册UDF(在444行左右)
system.registerUDF("sayhello", UDFsayHello.class, false);

编译hive

[hadoop@hadoop614 exec]$ cd ~/Demonstration/hive-1.1.0-cdh5.7.0
[hadoop@hadoop614 hive-1.1.0-cdh5.7.0]$ mvn clean package -Phadoop-2 -DskipTests -Pdist
  • 编译成功后截图

部署编译后的hive包

1. 重新部署hive

2. 修改原hive

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值