一、编译准备

1.下载源码包

https://github.com/apache/hive/archive/refs/tags/rel/release-2.3.7.zip

或使用git直接拉取

无法解决科学问题请点

2.环境

JDK 1.8.0_202

Apache Maven 3.6.3

git 2.32.0 (编译过程需要执行bash,cmd会报错)

二、执行操作与主要问题

1.操作

在已经解压过的Hive源码包下启动git bash 运行一下代码

mvn clean package -Phadoop-2,dist 这是官网给出的编译语句,根据基于的hadoop版本填入数字

mvn clean package -Phadoop-2 -DskipTests 跳过测试

mvn -Phadoop-2 -Pdist -DskipTests -Dmaven.javadoc.skip=true clean package 在上面的基础上跳过文档生成

如果显示Hadoop依赖问题报错可以去掉hadoop项 mvn clean package -Pdist -DskipTests

2.主要问题

(1).pentaho-aggdesigner-algorithm:jar缺失



这个问题基本编译Hive的都会遇到,根本原因是阿里云镜像jar包索引不明,按照其它方法提供的更改POM文件中spring镜像仓库依然无法下载jar包,最终手动下载安装成功

mvn install:install-file -DgroupId=org.pentaho -DartifactId=pentaho-aggdesigner-algorithm -Dversion=5.1.5-jhyde -Dpackaging=jar -Dfile=pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar(jar绝对路径)

(2).Java环境问题



经过几次测试结合其他总结经验发现,JDK验证(java -version,javac,java)都正常的情况依然会有类似报错

可以在执行编译语句前设置JDK路径(很多时候mvn默认是JRE)set JAVA_HOME=你的JDK绝对路径

解决上述问题基本就编译成功

在同等的环境下使用linux(ubuntu和CentOS)编译均不会出现win下的各种环境问题

直接使用IDE编译可能会出现更多JAR包问题,如果仅仅只是Hive的框架依赖如Hadoop_HOME和Druid_HOME,则不影响测试

如果不需要对整个Hive测试,可以仅编译单个组件。例如:ql[hive-exec]、llap-common

最新文章

  1. ReactNative入门(安卓)——API(上)
  2. selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)
  3. Redis-cluster集群【第四篇】:redis-cluster集群配置
  4. SQL Server 2012 自动增长列,值跳跃问题
  5. 【前台页面 BUG】回车按钮后,页面自动跳转
  6. 【转】Struts1.x系列教程(4):标签库概述与安装
  7. Codeforces Round #229 (Div. 2) D
  8. 【Spark】---- Spark 硬件配置
  9. qt 屏幕旋转
  10. JAVA 显示图片的简单源码 分类: Java Game 2014-08-14 10:10 77人阅读 评论(0) 收藏
  11. 在C语言环境下使用google protobuf
  12. [Effective C++ --031]将文件间的编译依存关系降至最低
  13. MFC定时器
  14. 拓展:switch实现
  15. Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册
  16. Raspberry Pi + 3个USB摄像头 + Motion(简易监控设备配置记录1——介绍以及安装) 分类: Raspberry Pi 服务器搭建 2015-04-12 19:21 226人阅读 评论(0) 收藏
  17. ZooKeeper应用理论及其应用场景
  18. flex盒模型 详细解析
  19. 996.icu,不加班的程序员有前途吗?
  20. mac 环境搭建

热门文章

  1. Jmeter(四十九) - 从入门到精通高级篇 - jmeter使用监视器结果监控tomcat性能(详解教程)
  2. Jenkins实战应用–Jenkins构建中tag的应用
  3. AlexeyAB DarkNet YOLOv3框架解析与应用实践(三)
  4. the rust book 的简单入门笔记
  5. C++中头文件和实现文件的关系
  6. 在线CUR转换器
  7. 将Winform和wpf的界面转换为CPF代码用来实现跨平台
  8. mturoute 最大传输单元路由检测Host
  9. gomod使用小结
  10. ECMAScript 2021 正式确认