对于节点数超过 4000 的大型集群,前一节描述的 MapReduce 系统开始面临着扩展的瓶颈。 2010 年 Yahoo 的团队开始设计下一代的 MapReduce。 (Yet Another Resource Negotiator、YARN Application Resource Nefotiator)。

    YARN 将 JobTracker 的只能划分为多个独立的实体,从而改善了 MR1 面临的扩展瓶颈问题。 JobTracker 负责作业调度和任务进度监视,追踪任务、重启失败或过慢的任务和进行任务登记,例如维护计数器总数。
 
    YARN 将这两种角色划分为两个独立的守护进程:  
        资源管理器:
                管理集群上资源使用
        应用管理器:
                管理集群上运行任务生命周期的应用管理器
    应用管理器 与 资源管理器 协商集群的计算资源  容器 (每个容器都有特定的内存上限),在这些容器上运行特定的应用程序的进程。容器由集群节点上运行的加点监视器(nodeManage)监视。
 
        事实上,MapReduce 只是 YARN 应用的一种形式、YARN 应用可以在一个集群上共存。 例如一个 MR 应用可以同时作为 MPI 应用运行。大大提高了可管理性和集群利用率。
        MPI 通信协议。的目标是高性能,大规模性,和可移植性。
 
    YARN 上的 MR 比经典的 MR 包括更多的实体:
        提交 MapReduce 的客户端。
        YARN 的资源管理器
        YARN 的节点管理器
        MapReduce 应用程序 master 负责协调运行 MapReduce 作业的任务。 它和 MapReduce 任务在容器中运行, 这些容器由资源管理器分配并由节点管理器进行管理。
YARN 运行 MapReduce 的过程 
 
加入了 master、优化了失败标记、 
 
MR2 状态更新传播
 
 
早期 Hadoop 使用先进先出调度算法运行作业
不久后增加了优先级、 跟 dota 一样 VERY_HIGH、HIGH、NORMAL、LOW、VERY_LOW。 作业调度选择优先级时,选择最高的作业。 FIFO 调度算法中,优先级并不支持抢占,所以高优先级作业仍然受阻于之前已经开始的作业、长时间运行的地优先级作业。
 
1 公平调度器
   目标是让每个用户公平共享集群能力。 作业都放在作业池中,并不会因为某个作业数较多的用户得到更多的集群资源。 可以用 map 和 reduce 的任务槽数来定制作业池的最小容量,也可以设置每个池的权重。
   公平调度器支持抢占机制,如果一个池在特定的一段时间未能公平共享资源,就会终止运行池中获得更多资源的任务,吧空出来的槽位让给运行资源不足的作业池。
 
2  容量调度器
    针对多用户调度,容量调度器可以让用户模拟出一个使用 FIFO 调度策略独立的 MapReduce 集群。 (更细粒度控制)
 
 
 
Map 处理
 
在将 压缩 map 输出写到磁盘的过程中对他进行压缩往往是个好主意。默认不压缩。
 
Reduce 处理
 
使用了压缩的map输出 都必须在内存中被解压缩。 复制完所有的map 任务后。 这个阶段将合并 map 输出(排序 map 已经做完 )
 
输入分片与 HDFS 块之间的关系
   一个文件被分成5行,行的边界与 HDFS 块边界没有对齐。 分片边界与逻辑边界(行边界)的边界对齐,所以第一个分片包含前 5行,及时第五行垮了第一块 和第二块。第二个分片 从第六行开始。
 
 
MultipleOutputs 的 write 方法可以指定基本路径相对于输出路径进行解释,因为他可以包含文件路径分隔符(/),所以可以创建任意深度的路径。
 
延迟输出
    FileOutputFormat 的子类会产生输出文件,及时文件是空的。 因此 LazyOutputFormat 出现了。他可以保证指定分区第一条记录输出时才真正创建文件。  要使用它, 用 JobConf 和 相关的输出格式作为参数来调用 
set OutputFormatClass() 方法即可。
 
MR 高级特性
Hadoop 为每个作业维护若干内置计数器。
 
 
边数据分布
“边数据”(side data) 是作业所需的额外的只读数据,以辅助处理主数据集。在于如何使所有 map or reduce 任务都能方便高效的使用边数据。
1 在作业配置中 (JobConf ) 序列化边数据。   耗费内存 浪费时间
2 分布式缓存, 
 
 

MRv2 工作机制 、 公平调度器、MR压缩、边数据的更多相关文章

  1. Yarn 公平调度器案例

    目录 公平调度器案例 需求 配置多队列的公平调度器 1 修改yarn-site.xml文件,加入以下从参数 2 配置fair-scheduler.xml 3 分发配置文件重启yarn 4 测试提交任务 ...

  2. 三:Fair Scheduler 公平调度器

    参考资料: http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html http://h ...

  3. MapReduce1 工作机制

    本文转自:Hadoop MapReduce 工作机制 工作流程 作业配置 作业提交 作业初始化 作业分配 作业执行 进度和状态更新 作业完成 错误处理 作业调度 shule(mapreduce核心)和 ...

  4. YARN的三种调度器的使用

    YRAN提供了三种调度策略 一.FIFO-先进先出调度器 YRAN默认情况下使用的是该调度器,即所有的应用程序都是按照提交的顺序来执行的,这些应用程序都放在一个队列中,只有在前面的一个任务执行完成之后 ...

  5. Linux核心调度器之周期性调度器scheduler_tick--Linux进程的管理与调度(十八)

    我们前面提到linux有两种方法激活调度器:核心调度器和 周期调度器 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测是否有必要 因 ...

  6. Hadoop Yarn调度器的选择和使用

    一.引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色.在讨论其构造器之前先简单了解一下Yarn的架构. 上图是Yarn的基本架构,其中ResourceManager是整个架构的核 ...

  7. 转: 调整 Linux I/O 调度器优化系统性能

    转自:https://www.ibm.com/developerworks/cn/linux/l-lo-io-scheduler-optimize-performance/index.html 调整 ...

  8. linux cfs调度器_理论模型

    参考资料:<调度器笔记>Kevin.Liu <Linux kernel development> <深入Linux内核架构> version: 2.6.32.9 下 ...

  9. 第一次作业:基于Linux 4.5的进程模型与调度器分析

    1.操作系统是怎么组织进程的? 1.1什么是线程,什么是进程: 刚接触时可能经常会将这两个东西搞混.简单一点的说,进程是一个大工程,线程则是这个大工程中每个小地方需要做的东西(在linux下看作&qu ...

随机推荐

  1. ASP.NET-AD开发技巧

    分享一篇很好的介绍AD属性的文章 AD图片插件 如何给AD添加图片 http://www.doc88.com/p-9542932844870.html AD过滤条件 重命名ou使用user.Renam ...

  2. 【云快讯】之四十八《IBM和Cisco最新收购,加强Openstack易用能力》

    2015-06-08 张晓东 东方云洞察 点击上面的链接文字,能够高速关注"东方云洞察"公众号 本周宣布的两起收购引人注意.思科购买Piston云计算公司.同期IBM的收购Blue ...

  3. 命令模式之2 Invoker Vs. Client

    当程序中直接编写下达命令的语句如new Cmd1().execute()时.一般会将调用者与客户类合二为一. 在GUI程序中.下达命令的语句通常包括在底层框架中.或者说底层框架包括了调用者.这时程序猿 ...

  4. nyoj--118--修路方案(次小生成树)

    修路方案 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 南将军率领着许多部队,它们分别驻扎在N个不同的城市里,这些城市分别编号1~N,由于交通不太便利,南将军准备修路. ...

  5. ubuntu下Chrome谷歌浏览器部分网站图片显示不正常的解决方法

    title: ubuntu下Chrome谷歌浏览器部分网站图片显示不正常的解决方法 toc: false date: 2018-09-02 14:37:26 categories: methods t ...

  6. linux服务器网站安全狗安装教程

    1.下载服务器安全狗和服务器网站安全狗,选择好版本.http://download.safedog.cn/safedog_linux64.tar.gz 这个是网站安全狗的下载地址2.登录centos进 ...

  7. ROS安装教程

    对于ROS的安装,在它的官方网站: http://wiki.ros.org/ROS/Installation 中也有详细说明.但是对于像博主这样先天英语发育不全的人来说,直接看官网还是有点困难的. 所 ...

  8. Java NIO(二)缓冲区

    概念 缓冲区:一个用于特定基本数据类型的容器,由java.nio包定义的所有缓冲区都是Buffer抽象类的子类.其作用于与NIO的通道进行交互,数据从通道读入缓冲区,数据从缓冲区写入通道 Buffer ...

  9. Android跳转到系统Wifi界面的方式

    第一种 Intent intent = new Intent(); intent.setAction("android.net.wifi.PICK_WIFI_NETWORK"); ...

  10. CREC 2017

    A:Assignment Algorithm #include <bits/stdc++.h> using namespace std; ][]; ][],n,m,ans=,A,B,l=, ...