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

Hive IDE连接及UDF实战

编辑2个月前 (04-28)恢复数据15

# Hive IDE连接 + UDF实战|完整一步通 我给你**最实用、企业真实场景、直接能跑**的全套流程: **DataGrip/DBeaver连接Hive** + **Java写UDF + 上传 + 注册 + 调用** --- # 一、Hive IDE 连接(2种最常用工具) ## 1. 连接前提 - 知道 **Hive Server2 地址**(host:10000) - 账号密码(若开启kerberos则需要keytab) - 网络通(能访问10000端口) --- ## 2. DBeaver 连接 Hive(免费推荐) 1. 新建连接 → 搜索 **Apache Hive** 2. 配置:   - Host:hive server2 IP   - Port:10000   - Database:default   - 用户名:你的账号(无密码留空) 3. **驱动选择**:Hive 2/3 对应驱动 4. 测试连接 → 成功 --- ## 3. DataGrip 连接 Hive(企业最常用) 1. 新建数据源 → **Apache Hive** 2. 填写:   - Host   - Port 10000   - Database default 3. 切换驱动:**Hive 3.x** 4. 高级参数(可选)   ```   set hive.execution.engine=tez;   ``` 5. 测试连接 --- # 二、Hive UDF 实战(企业标准流程) ## 什么是 UDF? 自定义函数,对Hive查询的**每一行数据做处理** 例如:脱敏、加密、截取、清洗、格式转换 --- # 三、实战:写一个【手机号脱敏 UDF】 ## 步骤1:创建Maven项目,导入依赖 ```xml <dependencies>    <dependency>        <groupId>org.apache.hive</groupId>        <artifactId>hive-exec</artifactId>        <version>3.1.2</version>        <scope>provided</scope>    </dependency> </dependencies> ``` --- ## 步骤2:写Java UDF代码 ```java import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; public class MaskPhone extends UDF {    public Text evaluate(Text phone) {        if (phone == null || phone.toString().length() != 11) {            return new Text("");        }        String s = phone.toString();        return new Text(s.substring(0, 3) + "****" + s.substring(7));    } } ``` --- ## 步骤3:打包成 JAR Maven 执行: ``` mvn package ``` 得到:`udf-demo.jar` --- ## 步骤4:上传JAR到Hive ### 方式A:临时函数(当前会话有效) ```sql add jar /path/udf-demo.jar; create temporary function mask_phone as 'com.xxx.MaskPhone'; ``` ### 方式B:永久函数(所有会话可用,企业用) 1. 上传JAR到HDFS   ```   hdfs dfs -put udf-demo.jar /user/hive/udf/   ``` 2. 创建永久函数   ```sql   create function mask_phone as 'com.xxx.MaskPhone'   using jar 'hdfs:/user/hive/udf/udf-demo.jar';   ``` --- ## 步骤5:使用 UDF ```sql select phone, mask_phone(phone) from user_info; ``` 输出: ``` 13812345678    138****5678 ``` --- # 四、企业常用 3 类 UDF 模板 ## 1. 字符串脱敏(最常用) ```java public Text evaluate(Text str) { ... } ``` ## 2. 日期格式化 ```java public Text evaluate(Text ts) { ... } ``` ## 3. 数据清洗(空值替换) ```java public Text evaluate(Text s) { ... } ``` --- # 五、常见问题 1. **ClassNotFound**   - JAR路径不对   - 包名写错 2. **Function doesn't exist**   - 未 add jar   - 未创建函数 3. **返回NULL**   - evaluate方法参数类型不匹配(必须用 **Text**)

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

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

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

“Hive IDE连接及UDF实战” 的相关文章

虚拟运存有没有必要开?会不会伤手机?

虚拟运存:要不要开、伤不伤手机、直白结论 一、先懂原理(大白话) 物理运存**:手机原装真实内存,速度快、寿命长。 虚拟运存(内存融合/扩展运存)**: 强行把**手机储存(存照片的空间)** 划分一部分,假装当运存用。 👉 本质:**用慢速存储,冒充高速内存** ---...

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

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

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

# Hive 注册 & 管理 UDF 最全实战指南(企业级标准) 我给你整理**最清晰、最常用、不踩坑**的全套流程:**临时UDF、永久UDF、删除UDF、查看UDF、重载UDF、权限问题**,全部一次性讲透。 --- # 一、UDF 三种类型(先分清) 1. ** Tem...

Windows安装RabbitMQ保姆级教程

下面是 Windows 下安装 RabbitMQ 的**保姆级、零翻车教程**,包含:Erlang 安装 → RabbitMQ 安装 → 环境变量 → 启用管理界面 → 开机自启 → 常见报错处理。 --- ## 一、先看版本匹配(必看!) RabbitMQ 依赖 Erlang,**版...

如何在Hive中使用已注册的UDF?

# 超清晰:Hive 中**已注册 UDF** 的使用方法(一次学会、终身不踩坑) 我用**最简单、最实战**的方式告诉你:   **UDF 注册好之后,到底怎么用?** --- # 一、先确认:你的 UDF 真的注册成功了吗? ## 1. 查看所有函数 ```sql...

Hadoop 完全分布式搭建(超详细无坑版,直接复制执行)

# Hadoop 完全分布式搭建【超详细无坑版|直接复制执行】 适配:**CentOS 7 / Rocky Linux 7+** 架构:`1主 + 2从` - master:NameNode、ResourceManager - node1:DataNode、NodeManager - no...

发表评论

访客

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