Mac系统搭建Hive源码远程调试环境
Posted strongyoung88
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac系统搭建Hive源码远程调试环境相关的知识,希望对你有一定的参考价值。
环境准备
- JDK
这个一定需要,不管是Hadoop,还是Hive的运行,都依赖这个。 - Hadoop
Hadoop的安装比较简单,从官网下载一个包,解压,然后配置几个核心的xml就可以了。 - Hive源码
从官网下载一个Hive的源码包,我下载的是3.1.1 - Intellij IDEA
建议下载community版 - Maven
编译Hive源码时需要
启动Hadoop
切换到Hadoop的安装目录,然后输入命令sbin/start-all.sh
,启动Hadoop
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
目录下
配置hive
首先,我们需要进行hive配置,包括hadoop的位置,hive元数据的初始化
配置haoop
切换到刚才编译成功后的target目录下的hive的目录下,我的是packaging/target/apache-hive-3.1.1-bin/apache-hive-3.1.1-bin/
,找到配置文件目录conf
对文件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
启动成功后,如下图:
配置IDE
启动IntelliJ IDEA,导入hive源代码,导入成功之后,找到类CliDriver
,这个类是hive cli的入口,当我们使用命令bin/hive
进行hive后,就是这个类来接收我们在终端的输入,所以,我们在这个类打个断点,方便后面断点调试:
然后,依次点击”Run”->”Debug…”->”Edit Configurations…“,然后点击左上角的”+”,选择”Remote”,会出现如下界面:
点击Debug之后,我们会发现在刚才启动hive debug监控的终端有所反应,输出大量的日志之后,那个终端(注意,是启动hive debug的那个终端)会等待我们的输入:
例如,我们在那个终端输入show databases
,然后回车,此时,程序运行到我们的IDE了,并接收到了刚才在终端的输入,如下:
到这里,我们已经可以对hive进行单点调试了!!
声明:由于是回忆式记录,所以,可能存在某个小步骤的遗漏,如果有任何问题,欢迎批评
以上是关于Mac系统搭建Hive源码远程调试环境的主要内容,如果未能解决你的问题,请参考以下文章
Hive源码系列hive2.1.1+hadoop2.7.3环境搭建
如何在Mac使用Intellij idea搭建远程Hadoop开发环境
如何在Mac使用Intellij idea搭建远程Hadoop开发环境