文档章节

Hive客户端脚本CLI分析及debug环境搭建

强子大叔的码田
 强子大叔的码田
发布于 2016/03/12 15:13
字数 420
阅读 556
收藏 0

接触Hive,自然少不了它家的shell命令行模式,下面就来分析下,平常我们接触的这个脚本到底如何运行的。

研究的版本是 1.2.1.(先搭建好Hadoop环境)   ---扩展阅读:有兴趣的看看别人写的 https://segmentfault.com/a/1190000002766035

1)下载Hive-1.2.1的二进制文件

http://archive.apache.org/dist/ 下面

2)解压缩

tar -zvxf apache-hive-1.2.1-bin.tar.gz

3)启动hive

./bin/hive 查看程序界面

4)定位入口函数

 通过脚本跟踪,找到

cli () {
  CLASS=org.apache.hadoop.hive.cli.CliDriver
  execHiveCmd $CLASS "$@"
}

看来主类就是 org.apache.hadoop.hive.cli.CliDriver

execHiveCmd命令在/root/hive/apache-hive-1.2.1-bin/bin/ext/util下面.

 打印$CLASS的值

结论就是:org.apache.hadoop.hive.cli.CliDriver就是入口类。

 

 http://www.iteblog.com/archives/864

 

---那么剩下的工作就是把源码现在eclipse里搭建好。---源码跟踪的是0.9.0版本

搭建eclipse过程中碰到几个问题

1)HiveParse.java类没有,这个其实是通过HiveParse.g文件产生的,自己编译下0.9.0版本的源码,就可以生成。

其它类似问题通过这种方式解决。

费了九牛二虎之力,终于搭建好了,上图

依赖的jar包比较多,如下图所示:

剩下的就是debug源码了。为啥选择0.9.0,理由有2个:

1早期的代码比较少,可以尽快掌握Hive的原理。后面的代码虽然比较新,但是换汤不换药。

2手头上的Hive编程指南讲的是0.9.0.

so,不管怎样,先看了。

--- debug语句如下:

jdb       org.apache.hadoop.hive.cli.CliDriver  -hiveconf x=y --define A=B --hivevar C=D -h 127.0.0.1

stop in  org.apache.hadoop.hive.cli.CliDriver.main

 

stop in org.apache.hadoop.hive.cli.OptionsProcessor.process_stage2

 stop in  org.apache.hadoop.hive.cli.CliDriver.setHiveVariables

 stop in org.apache.hadoop.hive.cli.CliDriver.getFormattedDb

stop in org.apache.hadoop.hive.cli.CliDriver.processLine

 stop in org.apache.hadoop.hive.cli.CliDriver.processCmd

run  

 


 

 

 




© 著作权归作者所有

强子大叔的码田

强子大叔的码田

粉丝 924
博文 1614
码字总数 1281034
作品 9
南京
架构师
私信 提问
加载中

评论(0)

【干货】Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件

在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA、ResourceManager HA之后(详见我的另一篇博文:Apache Hadoop 2.8分布式集群详细搭建过程),接下来将搭建最新稳...

雪饼
2017/06/28
4.2K
2
hive(02)、数据仓库Hive的基本使用

在上篇《 hive(01)、基于hadoop集群的数据仓库Hive搭建实践 》一文中我们搭建了分布式的数据仓库Hive服务,本文主要是在上文的基础上结合Hadoop分布式文件系统,将结构化的数据文件映射为一张...

MaxBill
2018/01/10
281
0
大数据经典学习路线(及供参考)之 一

1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务架构; 学完此...

柯西带你学编程
2018/05/22
0
0
【干货】Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件...

在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA、ResourceManager HA之后(详见我的另一篇博文:Apache Hadoop 2.8分布式集群详细搭建过程),接下来将搭建最新稳...

implok
2018/04/13
0
0
Spark Thrift JDBCServer应用场景解析与实战案例

[TOC] Spark Thrift JDBCServer应用场景解析与实战案例 1 前言 这里说的Spark Thrift JDBCServer并不是网上大部分写到的Spark数据结果落地到RDB数据库中所使用的JDBC方式,而是指Spark启动一...

xpleaf
2019/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SQL重复记录查询的几种方法

1 查找表中多余的重复记录,重复记录是根据单个字段 1 select * from TB_MAT_BasicData12 where MATNR in ( select MATNR from TB_MAT_BasicData1 group by MATNR having count(MATNR)>1)......

osc_vvylzpqs
2分钟前
0
0
十行代码让你的单机“影分身”,分布式训练速度快到飞起

工程师:“在你辉煌的时刻,让我为你唱首歌,我的好兄弟,心里有苦你对我说。” 计算机:“哥啊,那我可就说了,我是真的苦啊,现在一个模型动辄好几亿参数,数据集也是大的吓人,兄弟我内存...

飞桨PaddlePaddle
2分钟前
9
0
mysql: The target table of the UPDATE is not updatable

目标是批量更新目标表部分字段的数据 操作内容: 1.创建临时表 drop table if exists tempTableXXX create table tempTableXXX ( TEMP_ID int not null, BM varchar(14) ) 2.把数据存入临...

osc_5g68egoj
4分钟前
8
0
java 异常链

在设计模式中有一个叫做责任链模式,该模式是将多个对象链接成一条链,客户端的请求沿着这条链传递直到被接收、处理。同样 Java 异常机制也提供了这样一条链:异常链。 我们知道每遇到一个异...

osc_0bpc54vt
5分钟前
4
0
Go语言开发的微服务框架

 Go语言开发的微服务框架有什么?   1、项目名称:Istio   项目简介:Istio是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。使用istio可以很简单的创建具有负载均衡、服务间认证...

osc_aitaq37i
8分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部