Hive 简介及优化策略

简介

Hive是一个基于Hadoop文件系统之上的数据仓库架构。为数据仓库管理提供了许多功能:数据ETL工具、数据存储管理和大型数据集的查询和分析能力。
高延迟性。不提供数据排序和查询cache功能,不提供在线事务处理,不提供实时查询和记录级的更新,但能更好地处理不变的大规模数据集上的批量任务。

最大价值:1、可扩展性(自动适应机器数目和数据量的动态变化);2、可延展性(结合MapReduce和用户定义的函数库);3、良好的容错性;4、低约束的数据输入格式。

数据存储

四种模型:表(table),外部表(External Table),分区(Partition),桶(Bucket)

优化策略

1、列裁剪:在读取数据的时候,只读取查询中需要用到的列,而忽略其它列。
2、Map Join操作:Join操作在Map阶段完成,不再需要Reduce,前提条件是需要的数据在Map过程中可以访问。

  • Join生排序 在Reduce阶段,对一大一小的数据表类型进行Join操作,交大数据表数据拷入化到外存,以此避免消耗内在过大的问题。

3、Group By操作:Group By操作对Hive性能影响非常大,特别是处理海量数据的情况下。

  • 1、Map端部分聚合:并不是所有的聚合操作都要在Reduce端完成,很多聚合操作都可以先 Map端进行部分聚合,最后 在Reduce端得出最终结果。Map端部分聚合基于Hash。

  • 2、有数据倾斜的时候进行负载均衡:参数为hive.groupby.skewindata = false,默认为false。当选项设定为true,生成的查询计划会有两个MR Job。第一个MR Job中,Map的输出结果集合会随机分布到Reduce中,从而达到负载均衡的目的。第二个MR Job再根据预处理的数据结果按照Group By Key分到Reduc中(保证相同的Group By Key被 分布到同一个Recuce中),最后完成最终的聚合操作。

4、合并小文件:文件数目过多,会给HDFS带来压力,并且会影响处理效率,可以通过合并Map和Reduce的结果来消除这样的影响。


Standing on shoulders of Giants

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值