一、编译准备

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

Hive源码上手及问题解决的更多相关文章

  1. 自定义函数hello,并注册到hive源码中并重新编译

    1 编写自己的udf方法hello package cn.zhangjin.hive.udf; import org.apache.hadoop.hive.ql.exec.Description; i ...

  2. Hive源码解析

    date: 2020-07-08 15:12:00 updated: 2020-08-21 17:38:00 Hive源码解析 入口:hive-cli-1.1.0-cdh5.14.4.jar!/org ...

  3. 利用hive源码解析sql查了哪些表哪些字段

    在hiveserver2中使用了org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer对抽象语法树(AST)进行语义分析,分析的过程可以得出hive查 ...

  4. Android关联源码support-v4的问题解决

    如果在有用到过viewpager或者fragmentActivity等一些v4包下的类,当我们按F3时无法查看到源码,这个时候就需要我们关联该源码,该源码的关联与android源码的关联不一样. 大家 ...

  5. .net framework 源码调试 与 问题解决

    调试方式有二种, 看官方资料就OK. 官方地址: http://referencesource.microsoft.com/serversetup.aspx 1. 使用配置在线地址安装 2. 下载安装 ...

  6. hive源码之新建一个coroutine

    最近由于项目需要读了一下云风老大的hive项目代码,因为对lua只有熟悉的水平,下面的东西必然多多错误:),只为记录. lua_State *sL = schedule_newtask(L); str ...

  7. 【转】Android 4.3源码下载及问题解决

    [html] view plaincopy 1 2 3 4 5 6 7 8 9 10 11 jianguoliao@jianguoliao-Lenovo-IdeaPad-Y470:~$ cat /et ...

  8. hive 源码笔记(1):命令行执行的主流程。

    1. 'hive'命令是(默认为hive跟目录)./bin下的一个shell脚本,依次加载 ./bin/hive-config.sh, ./conf/hive-env.sh, 设置与hadoop.sp ...

  9. Hive源码分析(1)——HiveServer2启动过程

    1.想了解HiveServer2的启动过程,则需要找到启动HiveServer2的入口,hive服务的启动命令为hive --service HiveServer2,通过分析$HIVE_HOME/bi ...

随机推荐

  1. Kali Linux 2021.2 发布 (Kaboxer, Kali-Tweaks, Bleeding-Edge & Privileged Ports)

    Kali Linux 简介 Kali Linux 是基于 Debian 的 Linux 发行版,旨在进行高级渗透测试和安全审核.Kali Linux 包含数百种工具,可用于各种信息安全任务,例如渗透测 ...

  2. Mapper注解与MapperScan注解

    1.Mapper注解 在接口类上添加@Mapper,在运行时动态代理生成实现类 @Mapper public interface UserDao { // User getUser(); } 如果想要 ...

  3. TVM优化Deep Learning GPU算子

    TVM优化Deep Learning GPU算子 高效的深度学习算子是深度学习系统的核心.通常,这些算子很难优化,需要HPC专家付出巨大的努力. 端到端张量IR / DSL堆栈TVM使这一过程变得更加 ...

  4. 3层-CNN卷积神经网络预测MNIST数字

    3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...

  5. 面试官:说一下JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置

    今天去看牙医,他问我年级轻轻牙齿怎么磨损这么严重?我说,没有人点赞的这些年,我都是咬着牙过来的. Java中的垃圾回收器几乎是面试中的必考点,无论是面试初级,中级还是高级,总免不了要问一问垃圾回收器的 ...

  6. 1、java数据结构和算法---循环队列

    直接上代码: public class CircleArrayQueueLvcai { private int[] array; private int maxSize;//循环队列大小 privat ...

  7. InnoDB 静态数据加密的常见问题合集

    1. 数据是否为有权查看数据的用户解密? 是的.InnoDB静态数据加密旨在透明地在数据库中应用加密,而不会影响现有应用程序.以加密格式返回数据会破坏大多数现有应用程序. InnoDB静态数据加密提供 ...

  8. 【NX二次开发】根据部件名返回部件tag,UF_PART_ask_part_tag

    注意UF_PART_ask_part_tag的参数输入带扩展名的部件名或者不带扩展名的部件名,不允许输入全路径名,否则会出错,例如下面这例子.部件在C盘"C:\\temp\\B01.prt ...

  9. winform/WPF 多语言的实现

    WPF实现起来非常现代化,可以参考 https://www.cnblogs.com/yang-fei/p/4854460.html winform主要说一下实现过程和注意点,实现参考AutoUpdat ...

  10. PowerMockito的一些注意事项

    PowerMockito的一些注意事项 目录 PowerMockito的一些注意事项 1 注解@PowerMockIgnore({"javax.crypto.*"}) 2 Powe ...