本地调试(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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值