本地调试(local debug)Hive源码

本地调试(local debug)

本次调试本为了修改HiveServer2 以提供授权校验接口,因此下了Hive源码 准备调试一番。主要测试了CliDriver和HiveServer2.


主要流程参考了这篇文文章的实现:http://b865a395.wiz03.com/share/s/2Upqel3Vs45O2q1eTZ1wyr_O0urkGT29lAco2pq2Ol26_NM3

 在此篇文章对细节进行补充。

本地环境
  • 本地已安装好Hive环境,且初始化过mysql库。
  • 启动了HDFS服务。
  • Idea。
  • maven3,JDK1.8
代码准备
  • 下载相应版本源码。用IDE打开。
  • 先对源码打包一次,防止导入IDE时太慢。命令如下:
    mvn clean package -P hadoop-2 -DskipTests 
    记得要指定hadoop版本的profile,初次打包没什么问题可以跳过测试,不然要挺久的。然后大陆连apache central repo有时可能会超时,超时请在不同时间段多试几次或使用梯子。
  • 源码maven项目导入IDE
  • 可能会有一些 类找不到(一些是要antlr相关的), 跟进到相应的模块中,点击pom.xml 生成源码。

  • 代码生成后:(其他 代码找不到也用此方法解决)

调试exec
  • 在Hive运行版目录下执行 hive --service metastore 启动 metastore【提供服务】
  • 将本地Hadoop的core-site.xml放到 hive 源码目录的 src/main/resources 下,重新打包(如有必要)
  • 将hive-site.xml放在 cli模块中的resources中。 注意配置文件里,url是指向 metastore服务。而非直连mysql ,否则报一个错误:http://mail-archives.apache.org/mod_mbox/hive-dev/201108.mbox/%3CCA+FBdFSHBtBAX7ie0JDORiLc7Hj0ToXzmpAnk7Tq4h68HmV3sQ@mail.gmail.com%3E 不太容易解决。解决办法博客(主要是在eclipse里安装一个插件):http://guoyunsky.iteye.com/blog/1178076

  •  而直连服务 可以直接达到一样调试效果。
  • 以及另外一个  metastore 版本不一致的问题:http://blog.csdn.net/u011098327/article/details/54601229
  • 可以通过关闭版本检查 解决。

  • debug模式运行hive-cli中的CLIDriver类,此时控制台可见hive command line,可以输入命令然后再ql的相应代码中打断点进行单步或拦截。

调试metastore
  • 以debug模式启动HiveMetastore
  • 另外写testcase使用HiveMetastoreClient类进行交互访问

调试HiveServer2

同理,将hive-site.xml 放到service的resources目录下。 debug模式启动HiveServer2类。

用beeline连接。

beeline -u jdbc:hive2://localhost:10000/default -n userName -p passWord



 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive是一个基于Hadoop的数据仓库基础结构,它提供了SQL查询和数据分析功能。Hive的源代码阅读是指对Hive项目的源代码进行逐行分析和理解,以深入了解Hive的内部工作原理和实现细节。 Hive的源代码阅读可以从导读开始。导读部分是Hive代码仓库中的一些重要文档和指南,它们提供了关于Hive项目的概述和指导。 首先,我们可以阅读Hive项目的README文件。该文件通常包含了对项目的介绍、功能特点和使用说明。README文件一般会介绍Hive的目标、核心组件和HiveQL查询语言等内容,为我们提供了整体了解Hive的入口。 接下来,我们可以查看Hive项目中的文档目录。在这个目录下,我们可以找到各种文档、指南和设计文档,它们详细描述了Hive的不同方面和内部机制。这些文档可以帮助我们了解Hive的体系结构、数据处理流程、优化技巧等内容,为后续阅读源代码提供了必要的背景知识。 此外,还可以关注Hive项目的WIKI页面。Hive的WIKI页面常常有丰富的内容,包括开发指南、常见问题解答等。这些页面中提供了一些较为具体和实用的信息,可以帮助我们更好地理解Hive的源代码。 在阅读Hive源代码时,我们应该注重核心模块和关键类的分析。可以从查询解析器、查询优化器和执行引擎等模块开始阅读。这些模块负责将HiveQL查询转化为Hadoop任务并执行查询操作。 最后,我们还可以参考Hive源代码中的注释和代码文档。良好的代码注释可以帮助我们理解代码的意图和实现细节,而代码文档则可以提供更加详细的说明和使用方法。 综上所述,Hive源码阅读的导读包括了阅读README文件、查看文档目录和WIKI页面、重点关注核心模块和关键类的分析,以及参考代码注释和文档等内容。通过导读,我们可以为接下来的源码阅读做好准备,更好地理解Hive的工作原理和实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值