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

标签:hive

大数据

Hive源码系列(七)编译模块之词法、语法解析 (下)

Hive源码系列(七)编译模块之词法、语法解析 (下)
这篇主要介绍hive词法、语法解析的源码 以及hive AstTree 1、Hive的语法文件 对一个已有的项目进行语法分析,首先是要找到语法分析文件,分析语法文件之间的关系,然后根据语法分析文件提供的接口,确定语法解析在这个体系中所处的位置。 语法文件是以.g结尾   基本可以确定了 ql下面就是需要找到东西   HiveLexer.g 是做词法分析……继续阅读 »

diligentman 3周前 (08-29) 21浏览 0个赞

大数据

Hive源码阅读系列(五)编译模块之词法、语法解析 (上)

Hive源码阅读系列(五)编译模块之词法、语法解析 (上)
词法、语法解析模块会先介绍一下antlr环境(上)。然后举实际案例说明怎么使用antlr工具、利用antlr生成的Lexer、Parser、TreeParser代码,获取asttree。这些都是hive获取asttree的过程,理解了这些,再理解hive的asttree就很容易了(中)。 最后 详细介绍hive词法、语法解析的源码 以及hive AstTr……继续阅读 »

diligentman 3周前 (08-29) 18浏览 0个赞

大数据

Hive源码阅读系列(一) hive2.1.1源码编译并编译成eclipse项目

Hive源码阅读系列(一) hive2.1.1源码编译并编译成eclipse项目
这是一篇工具类的文章,工欲善其事必先利其器,要分析调试hive源码,必须搭建一套hive的运行环境。还记得第一次搭建hive源码调试环境,用了一个月的时间,才完全跑通整个调试过程。中间遇到各种各样莫名奇妙的问题,也有好多次想放弃,幸好坚持了下来。   我在调试hive源码时,主要使用eclipse,所以最终要把hive源码编译成eclipse项目,方便导入……继续阅读 »

diligentman 4周前 (08-28) 41浏览 1个赞

hive

hivesql : hive.groupby.skewindata 和hive.map.aggr 组合的坑

hivesql : hive.groupby.skewindata  和hive.map.aggr 组合的坑
hive.map.aggr=true;在map中会做部分聚集操作,效率更高但需要更多的内存。 hive.groupby.skewindata=true:数据倾斜时负载均衡,当选项设定为true,生成的查询计划会有两个MRJob。第一个MRJob 中, Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是……继续阅读 »

wangting 1年前 (2018-04-20) 668浏览 2个赞

hive

hive mapjoin

hive mapjoin
MapJoin是Hive的一种优化操作,其适用于小表JOIN大表的场景,由于表的JOIN操作是在Map端且在内存进行的,所以其并不需要启动Reduce任务也就不需要经过shuffle阶段,从而能在一定程度上节省资源提高JOIN效率. 方法一 在Hive0.11前,必须使用MAPJOIN来标记显示地启动该优化操作,由于其需要将小表加载进内存所以要注意小表的大小……继续阅读 »

wangting 2年前 (2017-11-24) 350浏览 0个赞

hive

hive orderby sortby distributeby clusterby

hive orderby sortby distributeby clusterby
order by:会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)。只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。 在hive.mapred.mode=strict模式下,强制必须添加limit限制,这么做的目的是减少reducer数据规模,例如,当限制limit 100时, 如果map的个数为50……继续阅读 »

wangting 2年前 (2017-07-27) 344浏览 0个赞