欢迎投稿

今日深度:

Hive(下),

Hive(下),


一个InputSplit输入到map,会运行我们实现的Mapper的处理逻辑,对数据进行映射操作。
map输出时,会首先将输出中间结果写入到map自带的buffer中(buffer默认大小为100M,可以通过io.sort.mb配置)。
map自带的buffer使用容量达到一定限制(默认0.80或80%,可以通过io.sort.spill.percent配置),一个后台线程会准备将buffer中的数据写入到磁盘。
这个后台线程在将buffer中数据写入磁盘之前,会首先将buffer中的数据进行partition(分区,partition数为Reducer的个数),对于每个的数据会基于Key进行一个in-memory排序。
排序后,会检查是否配置了Combiner,如如果配置了则直接作用到已排序的每个partition的数据上,对map输出进行化简压缩(这样写入磁盘的数据量就会减少,降低I/O操作开销)。

hive的各种join
1、左连接 left outer join
以左边表为准,逐条去右边表找相同字段,如果有多条会依次列出
2、右连接 left outer join
以左边表为准,逐条去右边表找相同字段,如果有多条会依次列出
3、内连接inner join
找出左右相同同的记录
4、全连接 full outer join
包括两个表的join结果,左边在右边中没找到的结果(NULL),
右边在左边没找到的结果(NULL)

www.htsjk.Com true http://www.htsjk.com/hive/28191.html NewsArticle Hive(下), 一个InputSplit输入到map,会运行我们实现的Mapper的处理逻辑,对数据进行映射操作。 map输出时,会首先将输出中间结果写入到map自带的buffer中(buffer默认大小为100M,可以通...
相关文章
    暂无相关文章
评论暂时关闭