小编使用的环境
- windows10
- apache-maven,版本:3.5.0
- jdk8
- cygwin,版本:1.7.35-1
cygwin说明
1.因为编译hive时会调用shell,windows本身不支持运行shell,引入cygwin可以模拟类UNIX环境。
2.从官方渠道安装cygwin时需要保持一个好网速,否则可能会多次安装失败,安装完后会有几个G,安装时间可能会有大半天。
3.非官方渠道上下cygwin离线包安装很快,但很多资源是垃圾资源安装不成功或安装了不能用,找资源时多看评论,小编是15年时安装的,链接当时没保存,本文中没能提供。
在cmd下开始编译
1.切换到源码目录
cd D:\bigdata\apache-hive-2.1.1-src
其目录结构如图
2. 添加CYGWIN到当前cmd窗口的环境变量中(如果已在系统环境变量里设置了,此步骤跳过)。
set CYGWIN_HOME=I:\cygwin64
set path=%path%;%CYGWIN_HOME%\bin
3.开始编译Hive
mvn clean install -DskipTests -Phadoop-2
4.编译成功界面如下
故障排查
问题1:cygwin没有安装好或者环境变量有问题
报错如图
检查方法
cmd下进入cygwin的bin目录运行如下几个命令
cygcheck -c cygwin gcc -v g++ --version make –version gdb –version ps ls
出现如图说明cygwin安装成功,然后去检查环境变量配置,否则说明安装失败。
问题2:maven编译过程中JVM内存溢出
报错如图
解决方法
修改源码根目录下的pom.xml
添加
<fork>true</fork> <meminitial>512m</meminitial> <maxmem>1024m</maxmem>
到如图位置