当前位置:首页 > 修改聊天记录 > 正文内容

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

# 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.gaijilu.com/?id=249

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

以win10系统为例关闭病毒威胁及防火墙

以win10系统为例关闭病毒威胁及防火墙

关闭病毒威胁及防火墙,按下列步骤流程操作。第1步。在桌面点下图“开始”按钮第2步。在向上弹窗点“齿轮”按钮,然后进入控制面板第3步。在控制面板中点“更新和安全”按钮第4步。安全和中心点“病毒和威胁防护”按钮第5步。病毒和威胁防护“管理设置”按钮第6步。管理设置关闭“实时保护”按钮第7步。点左侧的防火...

手机与电脑如何传递数据

手机+电脑 极简传文件速查表(直接照做,保存备忘录) 一、通用懒人(所有手机+电脑,小文件) 微信/QQ文件传输助手 1. 手机、电脑登录同一账号 2. 互相发送图片、文档、截图 3. 缺点:视频、图片会压缩,大文件慢 二、有线极速(原图/大视频/无压缩,推荐) 安卓 + 电...

有哪些软件可以实现手机和电脑之间的高效数据管理?

有哪些软件可以实现手机和电脑之间的高效数据管理?

下面按「苹果生态 / 安卓+Windows / 全平台通用」三类,给你整理**真正能落地、高效不乱的手机↔电脑数据管理软件**,每款讲清楚:**能干啥、适合谁、优缺点**。 --- ## 一、iPhone + Mac(苹果生态最优) ### 1. 系统自带:隔空投送 + 访达(免费,首...

如何选择适合自己的手机电脑数据同步方式?

一、根据使用需求选择1日常少量传输(图片、文档、文字)适合:微信 / QQ 文件传输助手、跨设备剪贴板、网页版互传特点:操作最简单,无需额外安装软件,适合临时发资料、截图、作业文件,普通学生、日常使用首选。2传输大文件、高清视频、大量照片适合:USB 有线连接、品牌专属互传、多屏协同特点:传输速度快...

无线传文件很慢?

无线传文件很慢?原因 + 解决办法(简洁科普版)一、变慢主要原因连接的是2.4G 低频 WiFi,网速本身就慢、干扰多。手机和电脑距离太远、隔墙,信号变弱。同一网络设备太多,WiFi 拥堵卡顿。用微信、QQ 传输,系统会压缩文件,还限速。后台下载、刷视频占用网速,挤占传输速度。二、快速提速方法切换连...

如何关闭手机、电脑的云同步功能

如何关闭手机、电脑的云同步功能

下面分手机(iOS / 安卓主流品牌)和电脑(Windows/Mac),一步步教你关闭云同步(可选择性关,也可全关),以及关闭后如何防止数据被自动恢复 / 覆盖。一、苹果手机(iPhone/iPad):关闭 iCloud 同步1)选择性关闭(推荐:只关照片 / 文档,保留联系人等)打开 设置 → 点...

发表评论

访客

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