hive自定义配置文件不生效

说明:只有在/opt/hive-0.13.1-cdh5.3.6/conf 目录下执行/opt/hive-0.13.1-cdh5.3.6/bin/hive命令时才可以连接mysql数据库。

在/opt/hive-0.13.1-cdh5.3.6 目录下执行bin/hive命令连接的是默认的derby数据库。

总结:即只有在hive的conf目录下执行命令,自定义的配置文件才生效。

 

具体原因:hive-env.sh文件配置错误

错误配置:export HIVE_CONF_DIR=/opt/hive-0.13.1-cdh5.3.6

正确配置:export HIVE_CONF_DIR=/opt/hive-0.13.1-cdh5.3.6/conf

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Hive 中,您可以通过编写自定义聚合函数(UDAF)来扩展其功能。自定义聚合函数允许您根据特定的业务需求定义自己的聚合逻辑,并将其用于 Hive 查询。 下面是一个简单的示例,展示了如何在 Hive 中创建一个自定义聚合函数来计算一组数字的平均值: 1. 创建一个 Java 类,实现 Hive 的 UDAF 接口。例如,创建一个名为 `AverageUDAF` 的类: ```java import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDAF; import org.apache.hadoop.hive.ql.exec.UDAFEvaluator; @Description(name = "average", value = "Calculates the average of a set of numbers") public class AverageUDAF extends UDAF { public static class AverageUDAFEvaluator implements UDAFEvaluator { private int count; private double sum; public void init() { count = 0; sum = 0; } public boolean iterate(double value) { if (value != 0) { count++; sum += value; } return true; } public double terminatePartial() { return sum; } public boolean merge(double otherSum) { if (otherSum != 0) { count++; sum += otherSum; } return true; } public double terminate() { if (count == 0) { return 0; } return sum / count; } } } ``` 2. 使用 Maven 或其他构建工具将该类编译为一个 JAR 文件。 3. 将编译后的 JAR 文件添加到 Hive 的类路径中。 4. 在 Hive 中注册自定义聚合函数。假设您已将 JAR 文件命名为 `my-udafs.jar`,并将其放置在 HDFS 的 `/user/hive/lib` 目录下: ```sql ADD JAR hdfs:///user/hive/lib/my-udafs.jar; CREATE TEMPORARY FUNCTION average AS 'com.example.udaf.AverageUDAF'; ``` 5. 现在,您可以在 Hive 查询中使用自定义聚合函数 `average` 来计算一组数字的平均值: ```sql SELECT average(column_name) AS avg_value FROM your_table; ``` 这将返回一组数字的平均值。 这只是一个简单的示例,您可以根据自己的需求编写更复杂的自定义聚合函数。请确保编写的自定义函数与 Hive 的 UDAF 接口兼容,并遵循正确的编译和部署步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinat_36710456

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值