一、前言
当我们需要深入hive源码排查问题时,简单的想法是:我们可以把hive源码下载下来,然后跟着代码一步步看。这当然是一个不错的方法。
此外,更好的方式是,我们可以使用远程debug模式:在hive命令行输入一条sql,然后进入本地IDEA的断点。这听起来太棒了!
下面,我带大家一步步搭建hive远程debug的环境。
二、linux环境安装hive二进制包
1.安装并配置Hive
下载apache-hive-2.3.8-bin.tar.gz,并解压到linux指定目录。
我的路径为
/app/hive/apache-hive-2.3.8-bin
hive的安装和配置方式请参见其他博客,本文不在此做过多讲解。
2.安装Hadoop
请参见其他博客,本文不在此做过多讲解。
三、window环境安装hive源码包
1.官网下载hive源码包
对应的版本为apache-hive-2.3.8-src.tar.gz,下载完后解压到window指定目录,
2.IDEA打开
3.maven package
用IDEA的maven工具打包,下载所需依赖,确保本地可以正常启动。此过程耗时较长。
四、调试步骤
1.linux启动hive
通过命令启动,默认端口为8000
hive --debug
此时可以看到在监听8000端口
2.IDEA远程配置
先点击Run->Edit Configurations
然后新建Remote
Remote填写如下信息,host对应linux机器的IP,port是刚才hive的8000端口
如果遇到本地不能telnet 服务器端口的问题,参考linux下打开对外开放端口号,我用的第一种方式。
3.IDEA启动
启动刚才的配置
启动后,可以看到linux的控制台开始打印信息
4.开始调试
hive命令行输入select * from 表名
,此时就会进入IDEA里提前打好的断点。