这期内容当中小编将会给大家带来有关hive中怎么添加永久自定义函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联公司,专注为中小企业提供官网建设、营销型网站制作、响应式网站开发、展示型成都做网站、网站制作、成都外贸网站建设等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
有一些函数是比较基础的,公用的,每次都要create temporary function麻烦了,这样的基础函数需要直接集成到hive中去,避免每次都要创建。
本人拥有一个账户zb_test
自定义的函数已经准备好
把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-exec-0.12.0-cdh6.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-cdh6.0.0.jar里面的$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.class文件,我们把替换了。
这些路径都是在hive-exec-0.12.0-cdh6.0.0.jar解压后的org的路径下的。
其实把这两个步骤做了以后,重新把刚刚解压的hive-exec-0.12.0-cdh6.0.0.jar打成jar包,替换了hive里的,就可以了。
上述就是小编为大家分享的hive中怎么添加永久自定义函数了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。