重新编译hive-exec 添加自定义函数

第一步 拷贝 hive-exec-1.1.0-cdh5.4.3.jar 

1、登录master服务器

2、拷贝该jar到 /home/hadoop/jars目录


第二步 发送 hive-exec-1.1.0-cdh5.4.3.jar 到其他服务器

1、使用hadoop用户

   scp /home/hadoop/jars/hive-exec-1.1.0-cdh5.4.3.jar hadoop@slave1:/home/hadoop/jars/

   scp /home/hadoop/jars/hive-exec-1.1.0-cdh5.4.3.jar hadoop@slave2 :/home/hadoop/jars/

   scp /home/hadoop/jars/hive-exec-1.1.0-cdh5.4.3.jar hadoop@slave3:/home/hadoop/jars/


第三步 拷贝 hive-exec-1.1.0-cdh5.4.3.jar 到/usr/lib/hive/lib/目录

1、使用root用户,分别在四台服务器上执行

   sudo su -

   cp /home/hadoop/jars/hive-exec-1.1.0-cdh5.4.3.jar /usr/lib/hive/lib/

   cp /home/hadoop/jars/hive-exec-1.1.0-cdh5.4.3.jar /usr/lib/hive/lib/

   cp /home/hadoop/jars/hive-exec-1.1.0-cdh5.4.3.jar /usr/lib/hive/lib/

   cp /home/hadoop/jars/hive-exec-1.1.0-cdh5.4.3.jar /usr/lib/hive/lib/


转载于:https://my.oschina.net/u/814431/blog/501857

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive中开发自定义函数,主要包括以下几个步骤: 1. 编写UDF代码:UDF是Hive中最常用的自定义函数类型,它接受一个或多个参数,并返回一个值。UDF可以使用Java或Scala编写,需要继承org.apache.hadoop.hive.ql.exec.UDF类,并实现evaluate方法。例如,以下是一个求字符串长度的UDF示例: ``` package com.example.hive.udf; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; @Description(name = "string_length", value = "Returns the length of a string.") public class StringLengthUDF extends UDF { public int evaluate(Text str) { if (str == null) { return 0; } return str.getLength(); } } ``` 2. 编译UDF代码:使用Maven或其他构建工具编译UDF代码,并将其打包成JAR文件。 3. 将JAR文件添加Hive的CLASSPATH中:可以使用以下命令将JAR文件添加Hive的CLASSPATH中: ``` ADD JAR /path/to/your.jar; ``` 4. 注册UDF:使用CREATE TEMPORARY FUNCTION命令向Hive注册UDF。例如,在Hive中注册StringLengthUDF: ``` CREATE TEMPORARY FUNCTION string_length AS 'com.example.hive.udf.StringLengthUDF'; ``` 5. 调用UDF:在Hive中使用SELECT语句调用UDF。例如,以下是调用StringLengthUDF的示例: ``` SELECT string_length('hello world') AS length; ``` 运行结果为: ``` +-------+ | length| +-------+ | 11| +-------+ ``` 需要注意的是,UDF的参数和返回值类型需要与Hive的数据类型相对应。在编写UDF时,还应该考虑参数非空判断、异常处理等问题,以保证函数的正确性和稳定性。除了UDF,Hive还支持其他类型的自定义函数,例如UDAF、UDTF等,开发方法类似,需要遵循Hive的函数开发规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值