文档章节

永久自定义hive函数

八戒_o
 八戒_o
发布于 2016/04/26 09:01
字数 506
阅读 164
收藏 1

永久自定义hive函数

1:做这件事的原因:

有一些函数是比较基础的,公用的,每次都要create temporary function麻烦了,这样的基础函数需要直接集成到hive中去,避免每次都要创建

2:步骤

本人拥有一个账户zb_test

自定义的函数已经准备好


登陆linux账户,修改该账户的home目录下的.bashrc文件:

CLASSPATH改成如下:

export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$SQOOP_HOME/lib:/opt/boh-2.0.0/hadoop/share/hadoop/

tools/lib/*:/opt/boh-2.0.0/hadoop/share/hadoop/common/lib/*:/opt/boh-2.0.0/hadoop/share/hadoop/common/*:/opt/boh-2.0.0/hive/li

b/*:$CLASSPATH(目的是自己编译的时候要用到)

获取hive-0.12.0-cdh5.0.0-src.tar.gz的源代码

解压,找到hive-exec-0.12.0-cdh5.0.0.jar包(hive函数跟这个有关),再解压。

jar -xvf XXX.jar

编译自定义函数的java文件,比如放在utf下

Javac ./utf/*

产生.class文件,放到abc目录下。

把.class文件打成jar包

Jar -cvf ./hello.jar ./abc/*

产生一个jar包,叫hello.jar

把jar包放到/data/zb_test/目录下

然后修改/data/zb_test/.bashrc文件的:

export CLASSPATH=/data/zb_test/hello.jar:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$SQOOP_HOME/lib:/opt/boh-2.0.0/hadoop/share/hadoop/tools/lib/*:/opt/boh-2.0.0/hadoop/share/hadoop/common/lib/*:/opt/boh-2.0.0/hadoop/share/hadoop/common/*:/opt/boh-2.0.0/hive/lib/*:$CLASSPATH(为了测试用的)

将函数test注册到hive的函数列表中
修改$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java文件
import org.apache.hadoop.hive.ql.udf.UDFTest;

registerUDF(“test”, UDFTest.class,false);

重要步骤:

1把刚刚产生的所有的.class文件都放到修改$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/udf下面

2:然后编译FunctionRegistry.java文件:编译通过以后,我们找到hive-exec-0.12.0-cdh5.0.0.jar里面的$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.class文件,我们把替换了。

这些路径都是在hive-exec-0.12.0-cdh5.0.0.jar解压后的org的路径下的。

其实把这两个步骤做了以后,重新把刚刚解压的hive-exec-0.12.0-cdh5.0.0.jar打成jar包,替换了hive里的,就可以了。

 

本文转载自:

八戒_o
粉丝 25
博文 123
码字总数 43412
作品 0
成都
程序员
私信 提问
如何在Hive中创建自定义函数UDF及如何直接通过Impala的同步元数据重用UDF的jar文件

如何在Hive中创建自定义函数UDF及使用 如何在Impala中使用Hive的自定义函数 UDF函数开发 使用Intellij工具开发Hive的UDF函数,进行编译; 1.使用Intellij工具通过Maven创建一个Java工程,并添...

阿姆斯特芬
前天
0
0
hive自定义udf实现md5功能

Hive自定义UDF实现md5算法 Hive发展至今,自身已经非常成熟了,但是为了灵活性,还是提供了各种各样的插件的方式,只有你想不到的,没有做不到的,主流的开源框架都有类似的机制,包括Hadoo...

九劫散仙
2016/05/24
292
0
0011-如何在Hive & Impala中使用UDF

1.文档编写目的 本文档讲述如何开发Hive自定义函数(UDF),以及如何在Impala中使用Hive的自定义函数,通过本文档,您将学习到以下知识: 1.如何使用Java开发Hive的自定义函数 2.如何在Hive中...

Hadoop实操
2018/11/17
50
0
大数据教程(12.3)Hive函数

本篇博客博主将分享Hive函数的基础知识. 1.内置运算符(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF) 2.内置函数(https://cwiki.apache.org/confluence/display......

em_aaron
01/31
27
0
Hive自定义函数与JDBC连接

自定义函数 编写代码 1.创建一个普通Java工程 2.导入hive安装目录下lib中所有以hive打头的jar包 3.写代码实现一个ToUpper类 4.导入jar包 5.上传jar包到hive安装目录下的lib中 注册函数 1.添加...

特拉仔
2018/05/22
77
0

没有更多内容

加载失败,请刷新页面

加载更多

采坑指南——k8s域名解析coredns问题排查过程

正文 前几天,在ucloud上搭建的k8s集群(搭建教程后续会发出)。今天发现域名解析不了。 组件版本:k8s 1.15.0,coredns:1.3.1 过程是这样的: 首先用以下yaml文件创建了一个nginx服务 apiV...

码农实战
4分钟前
1
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第6题

choose three Which three statements are true about indexes and their administration in an Orade database? A) An INVISIBLE index is not maintained when Data Manipulation Language......

oschina_5359
6分钟前
1
0
阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

导读:新版本主要有三大变化:同步了 OpenJDK 上游社区 jdk8u222-ga 的最新更新;带来了正式的 feature:G1ElasticHeap;发布了用户期待的 Windows 实验版本 Experimental Windows version。...

阿里巴巴云原生
12分钟前
1
0
教你玩转Linux—磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df、du和fdisk。 df df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少...

xiangyunyan
14分钟前
3
0
js 让textarea的高度自适应父元素的高度

textarea按照普通元素设置height是没有作用的,可以这么来设置, 下面给上一段项目代码 JS代码: $.fn.extend({ txtaAutoHeight: function () { return this.each(function () {...

文文1
15分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部