写点什么

12 周架构

用户头像
FreeOcean
关注
发布于: 2021 年 02 月 12 日

大数据概要总结



分析如下 HiveQL,生成的 MapReduce 执行程序,map 函数输入是什么?输出是什么,reduce 函数输入是什么?输出是什么?

INSERT OVERWRITE TABLE pv_users

SELECT pv.pageid, u.age

FROM page_view pv

   JOIN user u

   ON (pv.userid = u.userid);

 

page_view 表和 user 表结构与数据示例如下



map 函数输入: page_view pv ;user u      输出:userid,pageid; userid,age

reduce 函数输入:userid,pageid; userid,age 输出:pageid,age

 

说明

第一个 Map()函数统计 page_view 表。它的输入<key, value>中 value 是 page_view 的数据记录,输出的<key, value>中,key 是 userid,value 是表名和 pageid 的组合;

第二个 Map()函数统计 user 表。它的输入<key, value>中 value 是表记录,输出<key, value>中 key 是 userid,value 是表名和 age 的组合。

用 userid 做为 Map()函数输出<key, value>中的 key,因为在 Shuffle 过程中需要用 userid 来将 Map()的输出数据分类组合,然后传给 Reduce()函数中。Reduce()函数的输入<key, values>中 key 是 userid,values 是来自于表 pv 的 pageid 或者是来自于表 u 的 age。Reduce()函数将这些信息整合,得到的输出<key, value>中 value 就是所有 pageid 和 age 的组合。至此,MapReduce 过程结束,实现了 HiveQL 的查询结果。

 

用户头像

FreeOcean

关注

还未添加个人签名 2018.12.31 加入

还未添加个人简介

评论

发布
暂无评论
12周架构