开发者社区> 问答> 正文

MR从读取数据开始到将最终结果写入HDFS经过哪些步骤?

MR从读取数据开始到将最终结果写入HDFS经过哪些步骤?

展开
收起
xin在这 2021-12-06 21:51:23 523 0
1 条回答
写回答
取消 提交回答
  • 第一步:inputformat 数据读取

    第二步:split 将获取的数据进行逻辑切分

    第三步: recordReader(将数据以\n切分,进行再次切分,并输出key(行首字母的偏移量),value(一行的数据))

    第四步: Map接收key(行首字母偏移量),value(一行的数据),根据业务需求编写代码,输出(key,value 的list)

    输出给Shuffle(partition)

    shffle(核心机制: 数据分区,排序,分组,ComBine,合并等过程)输出key value的list

    第五步:partition :按照一定的规则对key,value 的 list 进行分区 输出给Shuffle(sort)

    第六步:Sort :对每个分区内的数据进行排序。 输出给Shuffle(combiner)

    第七步: Combiner: 在Map端进行局部聚合(汇总) 目的是为了减少网络带宽的开销 输出给Shuffle(group)

    第八步: Group: 将相同key的key提取出来作为唯一的key,将相同key 对应的value 提取出来组装成一个value 的List 输出给Shuffle(reduce)

    第九步: Reduce:根据业务需求对传入的数据进行汇总计算 输出给Shuffle(outputFormat)

    第十步: outputFormat:将最终的结果的写入到HDFS

    2021-12-06 21:52:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
海量数据分布式存储——Apache HDFS之最新进展 立即下载
HBase2.0重新定义小对象实时存取 立即下载
Hadoop存储与计算分离实践 立即下载