网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

hive编译源码支持自定义UDF函数

在工作中,我们需要用到自定义UDF函数:

成都创新互联是一家专注于成都网站建设、成都网站制作与策划设计,界首网站建设哪家好?成都创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:界首等地区。界首做网站价格咨询:13518219792

    1.可以创建持久函数

    2.也可以将其编译在源码中

本文档以源码编译的方式使用,下面为编译步骤;

  • 下载源码包

wget http://archive.cloudera.com/cdh6/cdh/5/hive-1.1.0-cdh6.7.0-src.tar.gz
tar xf hive-1.1.0-cdh6.7.0-src.tar.gz
cd hive-1.1.0-cdh6.7.0/
  • 进入UDF代码的目录

cd ql/src/java/org/apache/hadoop/hive/ql/udf/
------这里我们可以看到好多的UDF代码,以UDFXXX.java开头

hive编译源码支持自定义UDF函数

  • 将UDF的代码上面的目录下

helloUDF.java

package com.ruozedata.hadoop.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class HelloUDF extends UDF{
    public String evaluate(String input) {
        //TODO...此处为开发业务逻辑的地方
        return "Hello:" + input;
    }

    //下面为测试代码
    public static void main(String[] args) {
        HelloUDF udf = new HelloUDF();
        String output = udf.evaluate("测试数据");
        System.out.println(output);
    }
}
  • 在源代码中注册自定义的UDF函数

cd ql/src/java/org/apache/hadoop/hive/ql/exec/
#vim FunctionRegistry.java

import org.apache.hadoop.hive.ql.udf.HelloUDF;

hive编译源码支持自定义UDF函数

在176行增加如下内容

system.registerUDF("HelloUDF", HelloUDF.class,false);

hive编译源码支持自定义UDF函数

  • 编译hive

[root@hadoop001 exec]# pwd
/opt/sourcecode/hive-1.1.0-cdh6.7.0
[root@hadoop001 hive-1.1.0-cdh6.7.0]#mvn clean package -DskipTests -Phadoop-2 -Pdist

hive编译源码支持自定义UDF函数

编译后的文件为:

    1.packaging/target/apache-hive-1.1.0-cdh6.7.0-bin.tar.gz

    2. ./lib/hive-exec-1.1.0-cdh6.7.0.jar

  • 使用方式

方式一:将apache-hive-1.1.0-cdh6.7.0-bin.tar.gz重新部署

方式二:将编译后的/lib/hive-exec-1.1.0-cdh6.7.0.jar复制到${HIVE_HOME}/lib/目录下


当前题目:hive编译源码支持自定义UDF函数
分享URL:http://bjjierui.cn/article/jdodco.html

其他资讯