博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.1 MapReduce架构(1.0)
阅读量:4988 次
发布时间:2019-06-12

本文共 955 字,大约阅读时间需要 3 分钟。

1. MapReduce架构:
121940190192273.jpg
 
各个角色的功能:
 
121940194738201.jpg
121940203014315.jpg
2. MapReduce——容错性:
    
JobTracker
    单点故障,一旦出现故障,整个集群不可用
   
TaskTracker
    周期性向JobTracker汇报心跳
    一旦出现故障,上面所有任务将被调度到其他节
点上
   
MapTask/ReduceTask
    运行失败后,将被调度到其他节点上重新执行 
3. MapReduce—资源组织方式:
    
机器用“slot”描述资源数量
    由管理员配置slot数目(一般根据CPU,如一个cpu运行两个进程)
    分为map slot和reduce slot两种,
从一定程度上,可看做“任务运行并发度”
   
Map slot
    可用于运行Map Task的资源
    每个Map Task可使用一个或多个map slot
   
Reduce slot
    可用于运行ReduceTask的资源
    每个Reduce Task可使用一个或多个reduce slot
4. MapReduce—TaskScheduler(任务调度)
    
基本作用
    根据节点资源(slot)使用情况和作业的要求,将
任务调度到各个节点上执行
    
调度器考虑的因素
    作业优先级
    作业提交时间
    作业所在队列的资源限制 
    
   
作业调度流程图
    
121940206916729.jpg
5. MapReduce—数据本地性
 
什么是数据本地性(data locality)
    如果任务运行在它将处理的数据所在的节点,则称该任务
具有“数据本地性”
    本地性可避免跨节点或机架数据传输,提高运行效率
 数据本地性分类
    同节点(node-local)
    同机架(rack-local)
    
其他(off-switch)
121940210829143.jpg
6. MapReduce—任务并行执行
121940215048613.png
7. MapReduce—推测执行机制 
作业完成时间取决于最慢的任务完成时间
    一个作业由若干个Map任务和Reduce任务构成,
因硬件老化、软件Bug等,某些任务可能运行非常慢
推测执行机制
发现拖后腿的任务,比如某个任务运行速度远慢于任务平均速度
    为拖后腿任务启动一个备份任务,同时运行
    谁先运行完,则采用谁的结果
不能启用推测执行机制
    任务间存在严重的负载倾斜
    特殊任务,比如任务向数据库中写数据 

转载于:https://www.cnblogs.com/51runsky/p/4572428.html

你可能感兴趣的文章
Skulpt在线模拟运行Python工具
查看>>
287.软件测试概述
查看>>
297.白盒测试
查看>>
新闻客户端的突破与创新
查看>>
网络通信引擎ICE的使用
查看>>
js滚动事件实现滚动触底加载
查看>>
架构妄想:AJAX + REST
查看>>
css垂直居中的问题
查看>>
如何正确从他人机器MySQL数据库下拷贝出.sql,再导入到自己windows下MySQL数据库(图文详解)...
查看>>
面向对象之选课系统
查看>>
logging模块、shutil模块、subprocess模块、xml模块
查看>>
Codeforces Round #423 B. Black Square
查看>>
TFTP(Trivial File Transfer Protocol,简单文件传输协议)
查看>>
OO第三单元作业总结
查看>>
使用时间戳解决缓存问题
查看>>
HTTP的客户端识别与cookie机制
查看>>
【SHOI2015】脑洞治疗仪(恶心的线段树,区间最大子段和)
查看>>
Educational Codeforces Round 17
查看>>
源码安装pipelineDB之CentOS7
查看>>
剑指Offer 斐波那契数列
查看>>