hadoop学习(七)WordCount+Block+Split+Shuffle+Map+Reduce技术详解

本文深入探讨Hadoop MapReduce中的Block、Split、Shuffle过程及其在WordCount程序中的应用。Shuffle作为MapReduce核心,涉及数据复制、排序与合并,对性能调优至关重要。理解Block与Split的物理与逻辑划分,有助于把握MapReduce内部机制。文章通过实例解析Map与Reduce阶段,揭示Shuffle如何确保数据完整传输、减少网络消耗并优化磁盘IO。
摘要由CSDN通过智能技术生成

纯干货:通过WourdCount程序示例:详细讲解MapReduce之Block+Split+Shuffle+Map+Reduce的区别及数据处理流程。

       Shuffle过程是MapReduce的核心,集中了MR过程最关键的部分。要想了解MR,Shuffle是必须要理解的。了解Shuffle的过程,更有利于我们在对MapReduce job性能调优的工作有帮助,以及进一步加深我们对MR内部机理的了解。Shuffle到底是什么,自己在参考一位大牛两年前的博客,关于MR系列的文章中,才知道前辈什么时候已经开始相应的工作,真实佩服。这里通过对前辈的概念梳理,加上自己的见解,来尽可能的梳理清楚什么是Shuffle过程,什么是block,什么是split,从此处揭开MR的神秘面纱。

       在上篇博客中简单给出了Shuffle的概念,稍提了一下split,但没有谈block。在了解Shuffle之间我们要先了解一下block与split。Shuffle给出的定义是copy,copy一片数据,这里的一片数据你可以理解成一个split数据。但数据上传到HDFS中,数据被分块,被分成一个个的block块,这就引出了什么是block,什么是split,以及split和block的区别是什么?在解决block与split之后,就是重中之中,map和reduce过程,这就开始吧。

1、Block块:

      你把文件上传到HDFS中,第一步就是数据的划分,这个是真实物理上的划分,数据文件上传到HDFS后,要把文件划分成一块一块,每块的大小可以有hadoop-default.xml里配置选项进行划分。这里默认每块64MB,一个文件被分成多个64MB大小的小文件,最后一个可能于64MB。注意:64MB只是默认,是可以更改的,下面会谈到如何更改。


<property>  
   <name>dfs.block.size</name>  
   <value>67108864</value>  
   <description>The default block size for new files.</description>
</property>
 

       数据的划分有冗余,冗余的概念来自哪儿?为了保证数据的安全,上传的文件是被复制成3份,当一份数据宕掉,其余的可以即刻补上。当然这只是默认。


<property>  
   <name>dfs.replication</name>  
   <value>3</value>  
   <description>
     Default block replication.The actual number of replications can be specified 
     when the file is created.The default is used if replication is not specified in create time.  
   </description>
</property>

2、Split块:

       Hadoop中,有另一种关于数据的划分。这里定义了一个InputFormat接口,其中一个方法就是getSplits方法。这里就谈到了split。由于Hadoop版本更新换代很快,不同版本中的split的划分是由不同的job任务来完成的。早早先的版本split是有JobTracker端弯沉的,后来的版本是由JobClient完成的,JobClient划分好后,把split.file写入HDFS中,到时候JobTracker端读这个文件,就知道split是怎样划分的了。这种数据的划分其实只是一种逻辑上的划分,目的是为了让Map Task更好的获取数据。

例如:


File1:Block11,Block12,Block13ÿ
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值