Mac系统搭建Hive源码远程调试环境

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/strongyoung88/article/details/88087917

环境准备

  • JDK
    这个一定需要,不管是Hadoop,还是Hive的运行,都依赖这个。
  • Hadoop
    Hadoop的安装比较简单,从官网下载一个包,解压,然后配置几个核心的xml就可以了。
  • Hive源码
    从官网下载一个Hive的源码包,我下载的是3.1.1
  • Intellij IDEA
    建议下载community版
  • Maven
    编译Hive源码时需要

启动Hadoop

切换到Hadoop的安装目录,然后输入命令sbin/start-all.sh,启动Hadoop
image.png

image.png

NameNode,DataNode进程都起来了,表示Hadoop启动成功。

编译源码

切换到hive源码的根目录,然后输入以下命令:
mvn clean package -DskipTests -Phadoop-2 -Pdist

这个过程稍微有点长,耐心等待,也可能会报各种错误,我有遇到过一个错,是说没有正确配置JAVA_HOME变量,然后使用以下命令解决了:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home

其中,/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home是我的JDK所在目录,大家换成自己的就好

如果不出意外,编译成功之后,会在源码根目录下生成一个packaging目录,我们打包生成的文件就在此目录下的target目录下
1551591290133.jpg

配置hive

首先,我们需要进行hive配置,包括hadoop的位置,hive元数据的初始化

配置haoop

切换到刚才编译成功后的target目录下的hive的目录下,我的是packaging/target/apache-hive-3.1.1-bin/apache-hive-3.1.1-bin/,找到配置文件目录conf
image.png
对文件hive-env.sh进行编辑,找到HADOOP_HOME,对其更改成我们安装的Hadoop目录,我编译的是hive-3.1.1,安装的Hadoop是2.7.5,所以,这里列的目录,大家都要相应的改成自己的。
HADOOP_HOME=/Users/yangqiang/Soft/hadoop-2.7.5
保存并退出。

初始化hive元数据信息

切换到packaging/target/apache-hive-3.1.1-bin/apache-hive-3.1.1-bin目录下,然后运行以下命令(这里,我使用的是derby作为hive的元数据库,当然,你也可以选择mysql,但选择mysql需要先安装mysql,而且还需要其他配置及mysql的jar包)

bin/schematool -dbType derby -initSchema

到此,hive的配置也已完成。

启动hive debug监控

切换到packaging/target/apache-hive-3.1.1-bin/apache-hive-3.1.1-bin目录下,运行以下命令

bin/hive --debug -hiveconf hive.root.logger=DEBUG,console

启动成功后,如下图:
image.png

配置IDE

启动IntelliJ IDEA,导入hive源代码,导入成功之后,找到类CliDriver,这个类是hive cli的入口,当我们使用命令bin/hive进行hive后,就是这个类来接收我们在终端的输入,所以,我们在这个类打个断点,方便后面断点调试:
image.png

然后,依次点击”Run”->”Debug…”->”Edit Configurations…“,然后点击左上角的”+”,选择”Remote”,会出现如下界面:
image.png

点击Debug之后,我们会发现在刚才启动hive debug监控的终端有所反应,输出大量的日志之后,那个终端(注意,是启动hive debug的那个终端)会等待我们的输入:
image.png

例如,我们在那个终端输入show databases,然后回车,此时,程序运行到我们的IDE了,并接收到了刚才在终端的输入,如下:
image.png

到这里,我们已经可以对hive进行单点调试了!!

声明:由于是回忆式记录,所以,可能存在某个小步骤的遗漏,如果有任何问题,欢迎批评

猜你喜欢

转载自blog.csdn.net/strongyoung88/article/details/88087917
今日推荐