需要阅读hive源代码了解hive运行原理
修改hive部分代码来达到业务需求
可以将hive源代码下载下来进行编译运行,在本地进行调试。

1.环境准备

  • 开发需要在linux环境下
    可以在本机上装一个ubuntu操作系统或者一个虚拟机都可以。有条件的同学可以在macbook上开发也可以
  • linux版本的eclipse

2.开发环境

  • hive2.3
  • jdk 1.7
  • maven 3.3
  • hadoop2.7(hive是依赖hadoop的,开发的机器上可以不用安装hadoop,但需要将hadoop的配置文件拷贝过来,哪些文件下面有交代)

3.导入eclipse

  • hive代码
    从hive的官网下载hive代码https://github.com/apache/hive。当然你也可以在上面打fork,放到自己的github上,修改的地方提交到自己的github上。
  • hive代码导入到eclipse中
    hive项目是用maven管理的,但是不能以maven的形式直接导入进去。
mvn eclipse:clean
mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs -Phadoop-2

编译完成之后,就会在项目里面出现eclipse的配置文件,可以直接通过eclipse项目导入。
这里写图片描述

4.配置调试参数

  • 加入配置文件
    将本地运行hive的配置文件拷贝过来,hive-site.xml
    本地运行hive参考
    http://blog.csdn.net/dante_003/article/details/54944319
  • 加入hadoop配置文件
    在eclipse里面调试时,需要将hadoop的配置文件也加进来。bin版本的不需要是因为启动的shell脚本通过环境变量将hadoop的配置文件加入到了hive的classpath里面。
    加入core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml

5.启动调试

hive里面有两种服务模式,一种是cli模式,一种是hiveserver2,分别对应的启动入口

cli:hive-cli/org.apache.hadoop.hive.cli.CliDriver.java

hiveserver2:hiveservice/org.apache.hive.service.server.HiveServer2.java,直接用debug或者run运行调试

这里写图片描述

这里写图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐