【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自己的类上。

相关推荐
苛子2 天前
iPaaS、ETL、数据集成平台是什么?三者是什么关系?
数据仓库·etl
步行cgn2 天前
在 HTML 表单中,name 和 value 属性在 GET 和 POST 请求中的对应关系如下:
前端·hive·html
喂完待续2 天前
【Tech Arch】Hive技术解析:大数据仓库的SQL桥梁
大数据·数据仓库·hive·hadoop·sql·apache
喂完待续2 天前
Apache Hudi:数据湖的实时革命
大数据·数据仓库·分布式·架构·apache·数据库架构
beijingliushao5 天前
33-Hive SQL DML语法之查询数据-2
hive·hadoop·sql
让头发掉下来5 天前
Hive 创建事务表的方法
大数据·hive·hadoop
W.A委员会5 天前
SpringMVC
数据仓库·hive·hadoop·spring
王小王-1235 天前
基于Hadoop的全国农产品批发价格数据分析与可视化与价格预测研究
大数据·hive·hadoop·flume·hadoop农产品价格分析·农产品批发价格·农产品价格预测
TG_yunshuguoji7 天前
华为云数据仓库服务核心优势指南
数据仓库·云原生·华为云·数据库服务
典学长编程7 天前
JavaWeb从入门到精通!第二天!(Servlet)
数据仓库·servlet·javaweb