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

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

网页编辑6个月前 (04-28)修改聊天记录253

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

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

微信的聊天记录能修改吗?能!

微信的聊天记录能修改吗?能!

微信的聊天记录能修改吗?能!能添加、修改。添加的意思是,在原记录中凭空添加自己想要的内容。可以添加在任意位置,自己的名义,对方的名义都可能 。完成后在对话框中展示。与真实发送接受的无异。修改的意思是,原记录的内容可以任意修改,比方说原对话内容是“我爱你”,可以修改为“我不爱你”,“你爱我吗”,内容自...

微信、支付宝、网购订单模拟生成截图软件

微信、支付宝、网购订单模拟生成截图软件

通过简单的设置,可以方便的生成您想要的截图。如微信对话、微信转账、微信红包、微信钱包、微信零钱、支付宝聊天对话、支付宝转账等强大功能 。有了这款软件用户可以随意编辑截图,包括聊天内容,手机壁纸,甚至是转账截图,都可以进行自定义的调整,为大家的生活提供了更多的便利。复制链接到浏览器打开,注册、下载安装...

4 种方法永久保存微信聊天记录,永不丢失

4 种方法永久保存微信聊天记录,永远不会丢方法一:用电脑微信备份(最靠谱、最全)登录电脑版微信,找到备份功能,把手机聊天记录完整存到电脑里。文字、图片、语音、视频、文件全都能保存,不会漏掉。备份好之后,再复制一份存到 U 盘或者移动硬盘里。就算换手机、卸载微信、手机坏掉,记录也能随时找回来。方法二:...

关闭这几个设置,手机瞬间杜绝监听偷窥

1. 关闭多余定位权限所有无关 APP,全部关掉定位只给地图、外卖临时用拒绝 24 小时跟踪你的行踪2. 关闭相机、麦克风权限小游戏、杂牌软件、工具箱全部禁用相机 + 麦克风防止后台偷偷录音、偷拍3. 关闭自动读取剪贴板杜绝 APP 偷看你复制的密码、验证码、聊天内容隐私再也不被偷偷收集4. 关闭后...

iPhone如何快速整理你的相册 iPhone怎么备份照片比较方便

iPhone如何快速整理你的相册 iPhone怎么备份照片比较方便

一、iPhone如何快速整理你的相册当手机中的照片或视频太多,管理变得越来越麻烦时,我们可以利用相册中自带的功能对照片进行分类,下面看看iPhone如何快速整理相册。1、打开手机中的【照片】,点击底部导航栏中的【相簿】按钮。在页面左上方点击【+】号图标,在弹出的列表中选择【新建相簿】,如下图所示。图...

手机和电脑的运存和储存容量是否可以扩展?

手机 vs 电脑:运存、储存 能否扩展?【极简大白话】先记住两个关键:运存(RAM)= 管流畅、后台储存(ROM / 硬盘)= 存照片、文件、软件一、手机端(iPhone + 安卓统一结论)1. 手机运存:❌完全不能扩展出厂焊死在主板上,无法更换、无法加装所谓「内存融合 / 虚拟运存」:只是拿储存空...

发表评论

访客

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