当前位置:首页 > 恢复数据 > 正文内容

如何在 Hive 中注册和管理 UDF?

编辑4个月前 (04-28)恢复数据97

# Hive 注册 & 管理 UDF 最全实战指南(企业级标准) 我给你整理**最清晰、最常用、不踩坑**的全套流程:**临时UDF、永久UDF、删除UDF、查看UDF、重载UDF、权限问题**,全部一次性讲透。 --- # 一、UDF 三种类型(先分清) 1. ** Temporary UDF(临时函数)**   只在当前会话有效,关闭 hive 客户端就消失   → 测试用 2. ** Permanent Function(永久函数)**   注册到 Hive 元数据,所有人、所有会话都能用   → **生产环境标准用法** 3. ** Permanent Function with Jar on HDFS**   企业最标准、最稳定、必须用   → **JAR 放在 HDFS,所有人都能访问** --- # 二、最常用:注册 **临时 UDF**(测试用) ## 1. 上传 jar(本地路径) ```sql add jar /home/hive/udf/myudf.jar; ``` ## 2. 创建临时函数 ```sql create temporary function mask_phone as 'com.xxx.MaskPhone'; ``` ## 3. 直接使用 ```sql select mask_phone('13812345678'); ``` --- # 三、企业标准:注册 **永久 UDF**(必须会) ## 步骤 1:把 JAR 传到 HDFS(关键) ```bash hdfs dfs -put myudf.jar /user/hive/udf/ ``` ## 步骤 2:注册永久函数 ```sql CREATE FUNCTION mask_phone AS 'com.xxx.MaskPhone' USING JAR 'hdfs:///user/hive/udf/myudf.jar'; ``` ✅ **优点:** - 永久生效 - 所有客户端可用 - 重启 Hive 也在 - 跨会话、跨用户 --- # 四、注册到指定数据库(生产常用) ```sql CREATE FUNCTION db_name.mask_phone AS 'com.xxx.MaskPhone' USING JAR 'hdfs:///user/hive/udf/myudf.jar'; ``` 使用时: ```sql select db_name.mask_phone(phone); ``` --- # 五、查看所有 UDF(必用) ## 1. 查看所有函数 ```sql show functions; ``` ## 2. 查看某个 UDF 信息 ```sql desc function extended mask_phone; ``` 会显示: - 类路径 - JAR 路径 - 函数类型 --- # 六、删除 UDF ## 1. 删除永久函数 ```sql DROP FUNCTION IF EXISTS mask_phone; ``` ## 2. 删除指定库的 UDF ```sql DROP FUNCTION IF EXISTS db_name.mask_phone; ``` ## 3. 删除临时函数 ```sql DROP TEMPORARY FUNCTION IF EXISTS mask_phone; ``` --- # 七、更新 / 重载 UDF(代码改了怎么更新?) ## 方法 1:删除重建 ```sql DROP FUNCTION mask_phone; CREATE FUNCTION mask_phone AS 'com.xxx.MaskPhone' USING JAR 'hdfs:///user/hive/udf/myudf.jar'; ``` ## 方法 2:覆盖 HDFS 上的 JAR,重启 Hive Server2 ```bash hdfs dfs -put -f myudf.jar /user/hive/udf/ ``` 然后重启 hive-server2 生效。 --- # 八、UDF 权限问题(90% 的人踩过坑) ## 报错: - Permission denied - Class Not Found - Unable to read jar ## 解决: ```bash hdfs dfs -chmod 755 /user/hive/udf/myudf.jar hdfs dfs -chown hive:hive /user/hive/udf/myudf.jar ``` --- # 九、企业级 UDF 注册模板(直接复制) ## 1. 上传到 HDFS ```bash hdfs dfs -mkdir -p /user/hive/udf hdfs dfs -put myudf.jar /user/hive/udf/ hdfs dfs -chmod 755 /user/hive/udf/myudf.jar ``` ## 2. 注册永久函数 ```sql CREATE FUNCTION default.mask_phone AS 'com.company.udf.MaskPhone' USING JAR 'hdfs:///user/hive/udf/myudf.jar'; ``` ## 3. 测试 ```sql SELECT mask_phone('13900001111'); ``` --- # 十、最常用命令汇总(背会) ```sql -- 注册临时 add jar /path/xxx.jar; create temporary function 函数名 as '全类名'; -- 注册永久 create function 函数名 as '全类名' using jar 'hdfs://path/xxx.jar'; -- 查看 show functions; desc function extended 函数名; -- 删除 drop function 函数名; ```

扫描二维码推送至手机访问。

版权声明:本文由手机数据加工厂发布,如需转载请注明出处。

本文链接:https://www.cryp6.com/?id=189

“如何在 Hive 中注册和管理 UDF?” 的相关文章

手机隐私防泄露指南,普通人必看

普通人手机隐私防泄露完整指南覆盖日常使用、权限、软件、支付、社交、拍照、定位七大核心场景,简单好操作,普通人照着设置就能大幅降低隐私泄露、被偷拍、被诈骗风险。一、基础权限:关掉所有没必要的授权关闭 APP 过度权限相册、麦克风、摄像头、定位、通讯录、存储、后台弹窗,非必要全部设为「仅使用时允许」或「...

如何使用iMazing进行照片备份?

如何使用iMazing进行照片备份?

一、准备工作电脑安装 iMazing(支持 Mac / Windows)用原装数据线把 iPhone 连到电脑手机解锁,信任此电脑二、方法 A:单独导出照片(最常用)1. 进入照片界面iMazing 识别手机后,左侧点击照片iMazing2. 选择要备份的照片按 Ctrl+A 全...

微信PC端数据库的密钥有什么作用?

# 微信PC端 提取数据库密钥 完整实操(纯工具、无调试、最简单) ## 重要法律声明 **仅允许提取自己微信账号数据**,禁止窃取、破解他人聊天记录,违规操作承担法律责任。 当前微信 PC 最新版本,通用方案:**PyWxDump 一键提取密钥**,无需逆向、无需x64dbg。 ---...

时序数据库选型权威指南:从大数据视角解读IoTDB的核心优势

时序数据库选型权威指南:从大数据视角解读 IoTDB 的核心优势在物联网、工业互联网与智慧城市驱动的PB 级时序数据时代,选型核心是平衡写入吞吐、存储成本、查询效率、生态兼容与云边协同五大维度。Apache IoTDB 作为国产顶级开源时序数据库,凭借原生工业级设计与大数据生态深度融合,成为高基数、...

Hive IDE连接及UDF实战

# Hive IDE连接 + UDF实战|完整一步通 我给你**最实用、企业真实场景、直接能跑**的全套流程: **DataGrip/DBeaver连接Hive** + **Java写UDF + 上传 + 注册 + 调用** --- # 一、Hive IDE 连接(2种最常用工具)...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。