hive-0.13固化自定义UDF
来源:互联网 发布:mac avi转mp4 编辑:程序博客网 时间:2024/05/01 06:53
之前帮业务方固化过hive-0.7的自定义的UDF,由于现在大部分业务数据都已经迁移到hadoop2.4.0,hive使用的版本是0.13,之前固化的UDF不能用了,让在0.13上面也固化一下,以下是固化过程:
1、常用的自定义函数有:mid,url_to_mid ,row_number ,findid ,nvl
2、udf包:hive-udf-1.0.jar
3、将hive-udf-1.0.jar包作为编译hive-exec依赖的方式有以下两种,选择其中一种就行:
(1)、将hive-udf-1.0.jar打进maven本地库,hive从本地maven库获取
mvn install:install-file -Dfile=${LOCAL_JAR_PATH}/hive-udf-1.0.jar -DgroupId=com.sina.dw -DartifactId=hive-udf -Dversion=1.0 -Dpackaging=jar
修改hive/ql下面的pom.xml文件,增加以下内容
<dependency>
<groupId>com.sina.dw</groupId>
<artifactId>hive-udf</artifactId>
<version>1.0</version>
<optional>true</optional>
</dependency>
(2)、mavn打包的时候使用scop为system,指定包路径
<dependency>
<groupId>com.sina.dw</groupId>
<artifactId>hive-udf</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${LOCAL_JAR_PATH}/hive-udf-1.0.jar</systemPath>
</dependency>
4、修改hive类
hive-0.13.0/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
增加以下内容:
import dw.udf.FindId;
import dw.udf.UrlToMid;
import dw.udf.mid;
static {
registerUDF("url_to_mid”,UrlToMid.class, false);
registerUDF("mid", mid.class, false);
registerUDF("findid”,FindId.class ,false);
}
5、打包生成hive-exec-0.13.0.jar
cd hive-0.13.0/ql/
执行:
mvn package -DskipTests -Phadoop-2
6、拷贝包修改配置文件
(1)、将生成的包hive-exec-0.13.0.jar拷贝到$HADOOP_HOME/share/hadoop/common/lib目录下
(2)、拷贝hive-udf-1.0.jar到$HIVE_HOME/lib目录下
(3)、修改hive配置文件hive-site.xml,修改配置项hive.aux.jars.path
<property>
<name>hive.aux.jars.path</name>
<value>file:///***.jar,file:///***/hive-0.13.0/lib/hive_udf.jar</value>
</property>
注意:在我的环境下必须把hive-exec-0.13.0.jar放到hadoop下面,放到$HIVE_HOME/lib下不生效,这个问题是从执行hive命令时,提示信息知道的:
hive
Logging initialized using configuration in jar:file:$HADOOP_HOME/share/hadoop/common/lib/hive-exec-0.13.0.jar!/hive-log4j.properties
hive>7、测试
查询mid转url
select mid('3520617028999724') from dual
查询mid
select url_to_mid('z62QS3Ghr','1','0') from dual
博文中短链点击次数查询:
select t1.uid,count(1) from hue_lilin4_mid t1 join f_tblog_behavior b on t1.uid=findid(b.extend,'mid') and b.dt>='2012-07-21' and b.dt<='2012-08-12' and b.behavior='14000014' group by t1.uid
8、一切ok,over!
- hive-0.13固化自定义UDF
- HIVE 自定义函数 UDF
- Hive自定义UDF-RowNumber
- Hive自定义UDF-RowNumber
- Hive自定义UDF
- hive 增加自定义udf
- Hive自定义函数-UDF
- hive自定义函数UDF
- Hive自定义函数UDF
- Hive自定义UDF函数
- 自定义HIVE-UDF函数
- hive自定义函数UDF
- hive 自定义UDF,hive编译
- hive 自定义UDF UDAF UDTF
- Hive内部自定义函数UDF
- hive 自定义函数UDF,UDAF
- Hive自定义函数UDF开发
- Java 调用Hive 自定义UDF
- mysql 解决插入中文乱码问题
- javascript自动生成字符串(数字、字符)
- cowboy erlang 上传文件
- java数组的另一种用法
- 事务隔离级别
- hive-0.13固化自定义UDF
- Android应用程序启动过程源代码分析
- rsync的文件同步,复制,镜像,增量备份 v1.2
- Activity---生命周期
- java之IO流详解(一)
- 学习CSS了解单位em和px的区别
- C++ map的基本操作和使用
- Android中canvas rotate中心点问题图解
- cocos2d-x游戏开发(十三)细说回调函数