A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© LeeLao 初级黑马   /  2019-12-24 17:08  /  701 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家好 ,欢迎来到疯狂的代码,继承上次疯狂的代码1后 ,鄙人感觉写的不是很好 所以这次在精确的总结一下hadoop map 和 reducer阶段的详细步骤:首先 map阶段主要是对数据进行分割 即split 然后产生k2和v2  对于k2 和v2如何生成 ,这需要我们数据的具体分析 ,一般我们要的那个数据点可以作为k2,比如我们要对一个数据进行排列 其中有两个点,一个是相同的数据,一个是相同数据之间的排序,这个时候k2就有两个,所以我们可以封装为一个bean 这样就方便获取值然后根据不同情况去排序,在map阶段的奥k2 v2后,我们还会经过数据的shuffle阶段 鄙人觉得 hadoop的执行shuffle阶段非常重要 shuffle阶段有分区 排序 规约 分组  首先来说一下分区,分区就是对数据打标记,比如说你去这里,他去哪里,被打上标记的会分别分到不同的reduce里面执行,比如说我们求数据的TopN 要先对数据打标机,让相同的数据id分到一个reduce,然后在执行接下来的排序,即witableComparatable  这样我们就得到同一组的数据的排序, 然后即使规约 规约就是对数据的maptask阶段的局部汇总 它是继承reducer的 然后就是分组  分组就是对同一建的值进行归总 得到的是新的k2 v2 是一个集合,最后执行reducer    reducer阶段把心得k2 v2变为我们想要的k3 v3 这就是我们得到了想要的数据 然后...........................没词了

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马