初识Hive

hive
利用元数据将结构化文件映射成一张表
数据的流入流出均是hdfs,元数据的存储在自己的关系型数据库中

函数:
内部表,外部表:
默认创立内部表,删除内部表,元数据和数据一起删除,删除外部表只删除元数据
分区:
1.静态分区
2.动态分区
优点:有利于提高查询的速度
分桶:
应用场景:map join,数据抽样
视图:类似于mysql,其本质是一条sql语句,可以将复杂sql语句
简便化
索引:类似于其他数据库,将一张表按照某一(几)列建立索引,其本质是将其建立并
维护成一颗平衡树,初始情况每张表以主键建树。hive建立索引需要另外建立一张
索引表然后将原数据导入进去,且索引表的内容不会自动更新。删除索引表会将其元数据
与内容一起删除
优化相关:
1.当进行以下操作时,不会走mr流程
1)select仅查询本表字段
2)where仅对本表字段进行过滤操作
2.开启hive-join
目的:对于join操作,若小表足够小,直接在map阶段进行(将较小的表加载进内存,然后遍历
大表),从而避免shuffle阶段
3.Order By:对于查询结果做全排序,只允许有一个reduce处理(当数据量较大时,应慎用。
严格模式下,必须结合limit来使用)
Distribute By:分区排序,经常和Sort By结合使用
Sort By :对于单个reduce的数据进行排序
Order By = Distribute By + Sort By
4.开启map side聚合以及是否对其产生的数据倾斜做优化
使用查询结果的某一列来进行聚合(group by)从而达到压缩数据量,缩短shuffle阶段时间
数据倾斜是指,某一reducer的数据量占比较高从而导致job的效率降低。所谓对map side产生的数据倾斜做优化
是指开启hive.groupby.skewindata=true,对应的优化过程是,有两个mr job,第一job,mapper将数据随机分发reducer上
同一key也会分发到不同reducer,很均匀,然后输出结果。第二个job,按部就班执行,然后输出结果

5.开启并行计算,拆解为多个job
6.合理设置map,reduce数量

  --2020.2.2-2020.2.3,未验证,有时间去读读官方文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值