背景:目前的主流的离线数仓都是用hive,作为一名数仓开发人员,平时写的最多的就是hql,但是你敢说你了解hql,写了一段hql后,你了解hql的运行原理吗。一段小小的sql背后,又有多少东西需要搞明白:sql的编译过程、各种参数原理...... 。我会在接下来的一段时间主要聚焦于hive sql模块,精读源码。了解它背后实现的机制。共勉。。。
调试hive源码,必须搭建一套hive的运行环境。还记得搭建hive源码调试环境,中间遇到各种各样莫名奇妙的问题,也有好多次想放弃,幸好坚持了下来。其实很多问题都是依赖包没有下载下来,建议买个vpn进行下载
环境
Java版本:jdk1.8
Hive版本:hive-2.1.1
西马大数据:hive安装
Hadoop版本:hadoop-2.7.3
西马大数据:Hadoop 环境安装
Maven版本:maven-3.6.1
Hive的编译需要用到Maven
下载 apache-maven-3.6.1-bin.tar.gz
http://maven.apache.org/download.cgi
- 上传maven安装包
- 解压安装包
tar -zxvf apache-maven-3.6.1-bin.tar.gz
- 建立软链节
ln -s apache-maven-3.6.1 maven
- 配置环境变量
vim /etc/profile
#maven
export M2_HOME=/Users/xima/soft/Maven/apache-maven-3.6.1
export PATH=$PATH:$M2_HOME/bin
下载hive源码
Index of /dist/hive/hive-2.1.1
上传源码包apache-hive-2.1.1-src.tar.gz 至 /usr/local/workspace
解压 tar -zxvf apache-hive-2.1.1-src.tar.gz
cd /usr/local/workspace/apache-hive-2.1.1-src
mvn clean install -DskipTests
mvn idea:clean
mvn idea:idea -DdownloadSources-DdownloadJavadocs
cd cli/ 可以看到hive-cli-iml 文件
看到这里就说明代码编译成功了
下一篇Hive源码导入idea并初步运行成功
西马大数据:hive源码解读(2)-idea初运行zhuanlan.zhihu.com