后端基础

极客时间《架构师训练营》第十二周课后作业

2020-09-02  本文已影响0人  anOnion

极客时间《架构师训练营》第十二周课后作业

第一题

在你所在的公司(行业,领域)内,正在用大数据处理哪些业务?可以用大数据实现哪些价值?

我是做招聘软件的,说实在我们厂根本就没有大数据 😅。但是在这个领域里,我还是听说过一些使用场景,这里就道听途说列举一二:

第二题

分析如下 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 表结构与数据示例如下:

page_view & user

Map 函数

首先,我们看到该题中 page_view & user 两表的 JOIN 操作是通过 userid 关联的,所以 Map 操作必然是以 userid 为 key 值输出:

Shuffle

Shuffle 会将上述 Map 输出结构按 Key 值(userid)排序以及合并,会生成如下两张表的内容再交给不同的 Reduce 服务计算:

key: UserId value: <TableId, AgeOrPageId>
111 <u, 25>
111 <pv, 1>
111 <pv, 2>

key: UserId value: <TableId, AgeOrPageId>
222 <u, 32>
222 <pv, 1>

Reduce 函数

上一篇下一篇

猜你喜欢

热点阅读