【hive】远程remote debug hive的方法,用于hive监听器/钩子编写

背景

写hive监听器时候需要拿到hive对象但hive是在集群linux主机上运行的。通过jdbc提交的sql具体执行过程不会再idea中运行。所以如果需要拿到hive对象有可能存在两个思路:

(1)想办法写个钩子或者监听器,将需要的内容写成json字符串,在复制出来,在IDE中反序列化,然后回放。这个过程有个缺陷,如org.apache.hadoop.hive.ql.QueryPlan虽然继承了java.io.Serializable但是实际使用中需要内部各个成员变量都支持序列化,java没法做到编译检查。所以不可行。

(2)使用remote debug功能,可能社区版Community的IDEA没有此功能。

使用方法

先help看下:

hiveserver2启动方法:

bash 复制代码
# 默认开启本地8000端口号,日志里边有显示
$HIVE_HOME/bin/hive --debug --service hiveserver2 &

此时需要在IDE(这里以IDEA举例说明)连接此端口,hiveserver2才会继续运行,否则将一直阻塞(docker里测试不生效不知道为啥)

如果集群有多个hiveserver2,选择一个hiveserver2即可。idea连接指定好host即可。

IDEA连接了远程端口后,远端的hiveserver2就会继续运行了。

以下以钩子为例:org.apache.hadoop.hive.ql.hooks.ExecuteWithHookContext

在hive中执行大多数操作都会触发此断点。

如:show tables; use database ...; insert into table ...;

当然断点也可以打到hive自己的类上。

相关推荐
云器科技1 天前
螳螂科技:从组装到统一,如何用云器 Lakehouse 完美替代“MC+DW+ADB”三件套?
数据库·数据仓库·人工智能
王小王-1232 天前
基于商品评价的评论情感分析与可视化系统
hive·情感分析·商品评价分析·主题分析·商品评论分析
Nefu_lyh2 天前
【Hive】 八、Hive 计算引擎:MapReduce / Tez / Spark 对比与选型
hive·spark·mapreduce
白日与明月3 天前
Hive子查询中的ORDER BY陷阱:为什么排序“消失”了?
数据仓库·hive·hadoop
isNotNullX4 天前
企业数据中台建设,ETL工具选错了会踩哪些坑?
数据仓库·etl·原型模式
SelectDB技术团队4 天前
预约发布会|核心产品力首发,如何构建面向 Agent 时代的企业级数据引擎
数据库·数据仓库·人工智能·数据分析·可观测·apache doris·selectdb
Nefu_lyh4 天前
【Hive】六、Hive 运算逻辑:数学 / 逻辑 / 条件 / 日期 / 字符串函数
数据仓库·hive·hadoop
ChaITSimpleLove4 天前
Etl.Net 2.2.0 项目深度分析
数据仓库·.net·etl·大数据处理·数据管道·数据处理引擎
陆水A5 天前
【实时数仓·3】Flink多表JOIN状态爆炸——Event Time Temporal JOIN + TTL分层治理
大数据·数据仓库·数据分析·flink·数据库开发·bigdata
zhangjin12225 天前
DataX从入门到精通 第1课 ETL之DataX 安装DataX
数据仓库·etl·datax·datax安装教程