hadoop学习之路----MapReduce原理与基本架构总结(第三讲)

 hadoop学习之路----MapReduce原理与基本架构总结(第三讲)

MapReduce特点
 易于编程(熟悉之后确实很简单,大多数是map和reduce两个部分。hive和pig让mapreduce更加简单)
 良好的扩展性(简单的添加机器就可以实现)
 高容错性(job中任务部分失败,可以重新执行)
 适合PB级以上海量数据的离线处理
MapReduce不擅长
 实时计算
 像MySQL一样,在毫秒级或者秒级内返回结果(可以参考Spark或HBase,HBase随机读写性能好,统计不太好)
 流式计算
 MapReduce的输入数据集是静态的,不能动态变化
 MapReduce自身的设计特点决定了数据源必须是静态的(可以考虑Storm)
 DAG计算
 多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出(Tez)
MapReduce编程模式
    wordcount过程
     

大图:


MapReduce将作业的整个运行过程分为两个阶段
     Map阶段和Reduce阶段
 Map阶段由一定数量的Map Task组成
 输入数据格式解析:InputFormat
 输入数据处理:Mapper
 数据分组:Partitioner
 Reduce阶段由一定数量的Reduce Task组成
 数据远程拷贝
 数据按照key排序
 数据处理:Reducer
 数据输出格式:OutputFormat
经典流程图,如果看懂这张图,那么你对MapReduce理解的已经不错了

       


大图:


 默认TextInputFormat对文件切分,并处理每一个Split,提供RecordReader生成key/value
    TextInputFormat:Key是行在文件中的偏移量,value是行内容若行被截断,则读取下一个block的前几个字符
    设计到的概念            
           Block
        HDFS中最小的数据存储单位默认是64MB
        Spit
        MapReduce中最小的计算单元默认与Block一一对应
        Block与Split
        Split与Block是对应关系是任意的,可由用户控制
     Map阶段
 InputFormat(默认TextInputFormat)
 Mapper
 Combiner(local reducer)
 Partitioner
 Reduce阶段
 Reducer
 OutputFormat(默认TextOutputFormat)

Combiner
    Combiner可做看local reducer合并相同的key对应的value(wordcount例子)通常与Reducer逻辑一样好处
减少Map Task输出数据量(磁盘IO)
减少Reduce-Map网络传输数据量(网络IO)
结果可叠加
Sum(YES!),Average(NO!)
Partitioner
 Partitioner决定了Map Task输出的每条数据交给哪个Reduce Task处理默认实现:hash(key) mod R R是Reduce Task数目
 允许用户自定义,很多情况需自定义Partitioner
 比如“hash(hostname(URL)) mod R”确保相同域名的网页交给同一个Reduce Task处理
MapReduce架构

       


大图:


Jobtracker
• 管理所有作业
• 将作业分解成一系列任务
• 将任务指派给TaskTracker
• 作业/任务监控、错误处理等
Tasktracker
• 运行Map Task和Reduce Task
• 与JobTracker交互,执行命令,并汇报任务状态
MapTask
• Map引擎
• 解析每条数据记录,传递给用户编写的map()
• 将map()输出数据写入本地磁盘(如果是map-only作业,则直接写入HDFS)
ReduceTask
• Reduce引擎
• 从Map Task上远程读取输入数据
• 对数据排序
• 将数据按照分组传递给用户编写的reduce()
MapReduce容错性
 JobTracker
 单点故障,一旦出现故障,整个集群不可用
 TaskTracker
 周期性向JobTracker汇报心跳
 一旦出现故障,上面所有任务将被调度到其他节点上
 MapTask/ReduceTask
 运行失败后,将被调度到其他节点上重新执行
MapReduce任务提交
       



原文地址:http://bbs.chinahadoop.cn/forum.php?mod=viewthread&tid=5823

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值