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

Hive IDE连接及UDF实战

网页编辑2个月前 (04-28)恢复数据112

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

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

苹果手机数据恢复工具iStonsoft iPhone Data Recovery 2.1.41中文版

苹果手机数据恢复工具iStonsoft iPhone Data Recovery 2.1.41中文版

iStonsoft iPhone Data Recovery 2.1.41 中文注册版 iPhone 手机数恢复工具是一款专业的 iPhone 手机数据恢复工具,我们不再感到疼痛,当我们删除iPhone中的重要文件夹。我们都不受数据丢失任何更多的伤害。这个iPhone数据恢复是一个强大而可靠的助手把...

如何使用工具提取微信PC端数据库的密钥?

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

微信4.0聊天记录数据库文件解密分析

微信4.0聊天记录数据库文件解密分析

微信4.0分析记录要定位 key 的位置之前肯定先要找到真实的 key ,下面简单记录一下寻找过程。使用微信版本 4.0.0.26 进行分析。数据文档存储位置发生变化:C:\Users\xxx\Documents\xwechat_files\wxid_xxxxx\db_storage,且不可修改。进...

微信数据库解密神器PyWxDump:3步搞定聊天记录导出

第一步:环境准备与工具安装首先获取项目源码并完成环境配置:git clone https://gitcode.com/GitHub_Trending/py/PyWxDumpcd PyWxDumppip install -r requirements.txt安装完成后验证工具状态:python -m...

如何使用Docker Compose编排多个容器?

# Docker Compose 多容器编排|极简速通(一看就会、直接能用) 我给你**最实用、最通用、最不容易出错**的一套流程,不用复杂概念,照着写就能跑起来。 --- # 一、核心一句话 **Docker Compose = 用一个 YAML 文件,一键启动/停止/管理多个容器...

Windows安装RabbitMQ保姆级教程

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

发表评论

访客

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