1.4 Yarn及源码框架(☆☆☆☆)
1.4.1 简述Hadoop1与Hadoop2 的架构异同
加入了yarn解决了资源调度的问题。
加入了对zookeeper的支持实现比较可靠的高可用。
1.4.2 为什么会产生 yarn,它解决了什么问题,有什么优势?
Yarn最主要的功能就是解决运行的用户程序与yarn框架完全解耦。
Yarn上可以运行各种类型的分布式运算程序(mapreduce只是其中的一种),比如mapreduce、storm程序,spark程序……
1.4.3 MR作用提交全过程(☆☆☆☆☆)
1)作业提交过程之YARN
2)作业提交过程之MapReduce
3)作业提交过程之读数据
4)作业提交过程之写数据
1.4.4 HDFS的数据压缩算法? (☆☆☆☆☆)
Hadoop中常用的压缩算法有bzip2、gzip、lzo、snappy,其中lzo、snappy需要操作系统安装native库才可以支持。
数据可以压缩的位置如下所示。
企业开发用的比较多的是snappy。
1.4.5 Hadoop的调度器总结(☆☆☆☆☆)
目前,Hadoop作业调度器主要有三种:FIFO、Capacity Scheduler和Fair Scheduler。Hadoop2.7.2默认的资源调度器是Capacity Scheduler。
具体设置详见:yarn-default.xml文件
<property> <description>The class to use as the resource scheduler.</description> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value> </property> |
1)先进先出调度器(FIFO)
2)容量调度器(Capacity Scheduler)
3)公平调度器(FairScheduler)
1.4.6MapReduce 2.0 容错性(☆☆☆☆☆)
1)MRAppMaster容错性
一旦运行失败,由YARN的ResourceManager负责重新启动,最多重启次数可由用户设置,默认是2次。一旦超过最高重启次数,则作业运行失败。
2)Map Task/Reduce Task
Task周期性向MRAppMaster汇报心跳;一旦Task 挂掉,则MRAppMaster将为之重新申请资源,并运行之。最多重新运行次数可由用户设置,默认4 次。
1.4.7 mapreduce推测执行算法及原理(☆☆☆☆☆)
1)作业完成时间取决于最慢的任务完成时间
一个作业由若干个Map任务和Reduce任务构成。因硬件老化、软件Bug等,某些任务可能运行非常慢。
典型案例:系统中有99%的Map任务都完成了,只有少数几个Map老是进度很慢,完不成,怎么办?
2)推测执行机制:
发现拖后腿的任务,比如某个任务运行速度远慢于任务平均速度。为拖后腿任务启动一个备份任务,同时运行。谁先运行完,则采用谁的结果。
3)执行推测任务的前提条件
(1)每个task只能有一个备份任务;
(2)当前job已完成的task必须不小于0.05(5%)
(3)开启推测执行参数设置。Hadoop2.7.2 mapred-site.xml文件中默认是打开的。
<property> <name>mapreduce.map.speculative</name> <value>true</value> <description>If true, then multiple instances of some map tasks may be executed in parallel.</description> </property>
<property> <name>mapreduce.reduce.speculative</name> <value>true</value> <description>If true, then multiple instances of some reduce tasks may be executed in parallel.</description> </property> |
4)不能启用推测执行机制情况
(1)任务间存在严重的负载倾斜;
(2)特殊任务,比如任务向数据库中写数据。
5)算法原理:
1.4.8 Hadoop升级 Hadoop 源代码 mapreduce的map output的实现(☆☆☆☆☆)
http://blog.youkuaiyun.com/lw305080/article/details/56479170
1.4.9 Hadoop相关源码,遇到的问题描述(☆☆☆☆☆)
1.4.10 Hadoop安全,及资源管理方案介绍(☆☆☆☆☆)
1.4.11 介绍Yarn调度器如何分配作业,源代码层面分析(☆☆☆☆☆)
1.4.12 mesos和yarn资源管理器对比,及使用场景(☆☆☆☆☆)