• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

hive diligentman 3个月前 (08-28) 26次浏览

这次主要对hive源码包及hive的两种调试方式做了介绍,这篇结束后,整个源码调试环境的搭建已经完成。

源码包介绍参考官网:

https://cwiki.apache.org/confluence/display/Hive/DeveloperGuide#DeveloperGuide-CodeOrganizationandaBriefArchitecture

1、Hive源码包介绍

 

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

  • hive三个最重要的组件:

serde:这个组件是 hive内置的一些序列化解析类,此组件允许用户自己开发自定义序列化、反序列化文件解析器

MetaStore:hive的元数据服务器,用来存放数据仓库中所有表和分区的信息,hive元数据建表sql、升级sql脚本都存放在此目录下

ql:此组件用于解析sql生成执行计划(hive核心包,熟读此包,可了解hive执行流程核心)

 

  • 其他组件

 

cli:hive命令的入口,用于处理命令行提交作业

service:此组件所有对外api接口的服务端(通过thrift实现),可用于其他客户端与hive交互,比如jdbc。  

common:hive基础代码库,hive各个组件信息的传递也是有此包HiveConf类来管理。

ant:此组件包含一些ant任务需要的基础代码

bin:此组件包涵hive里的所有脚本,包括hivecli的脚本

beeline: HiveServer2提供的一个新的命令行工具Beeline

hcatalog: 是apache开源的对于表和底层数据管理统一服务平台,HCatalog底层依赖于Hive Metastore

findbugs:Findbugs是一个在java程序中查找bug的程序,它查找bug模式的实例,也就是可能出错的代码实例,注意Findbugs是检查java字节码,也就是*.class文件。  

hwi: hive web页面的接口

shims: shims相关类是用来兼容不同的hadoop和hive版本

llap: 是基于tez的一种近实时查询方案

 

  • hive辅助组件

 

conf: 此目录包涵hive配置文件hive-default.xml、hive-site.xml

data: hive测试所用数据

lib:  hive运行期间依赖的jar

2、调试

 

  • 远程调试

使用hive –debug启动hive远程调试模式

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

 

可以看到监听端口是8000,处于等待状态

设置eclipse远程调试:

在cliDriver类中打断点,在CliDriver类上右键Debug As->DebugConfigurations

 

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

 

右键Remote Java Application-> New

 

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

 

点Debug,我们看到hive shell会继续执行

 

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

 

输入命令进入调试:

 

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

 

  • 本地调试

本地调试是通过运行hive-cli项目中的CliDriver类来进行调试:

在cliDriver类中打断点,在CliDriver类上右键Debug As->Java Application

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

点击yes进入调试界面

Hive源码阅读系列(三) hive2.1.1源码包介绍及调试

在分析hive源码过程中,本地调试用起来更为方便

 


程序员灯塔 , 版权所有
转载请注明原文链接:https://www.wangt.cc/2019/08/5a15c2186a/
喜欢 (0)