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
- 编译成功后截图