数据的底层存储是文件
hive的计算框架是mapreduce,mapreduce的原理:
- 图上是整个mapreduce的运行过程,在各自的分片中,都是把数据分割以后每个值都对应一个1得到<key,1>,再经过本地reduce(combine过程)把key一样的value=1相加,得到新的<key,values>,再经过shuffle过程,把所有分片中的<key,values>,key一致的values相加,又得到最终的<key,values>。
- combiner其实是一个本地的reduce主要就是为了减轻reduce的负担,但并不是所有的场景都会发生combiner,例如求平均数
- 不会发送combiner的操作主要体现在不带 group by 的count(distinct) 这种操作,所有的数据都会分发的一个reduce上,数据产出极慢
——公司同事分享