分享

Hadoop-2.2.0中文文档:Hadoop 下一代 MapReduce (YARN);Web应用代理

问题导读
1、如何理解ResourceManager ?
2、设置 Web应用代理的原因是什么?
3、如何使得访问AM的web更加安全?





MapReduce在hadoop-0.23中已经经历了一次完全彻底地大修,就是现在我们叫的MapReduce 2.0 (MRv2) or YARN.

MRv2的基本思想是把JobTracker分成两个主要的功能,资源管理和工作调度/监控,变成独立的进程。有一个全局的ResourceManager (RM)和每个应用的ApplicationMaster (AM)。一个应用要么是一个典型的Map-Reduce工作,要么是工作的DAG。ResourceManager 和 每个从节点, NodeManager (NM),构成数据计算框架。在系统中的所有应用中,ResourceManager 有权分配资源。

每个应用 ApplicationMaster 实际上是一个指定库和协调ResourceManager和NodeManager(s)去执行和监控任务的框架。
1.jpg



ResourceManager 有两个主要的组件:Scheduler 和 ApplicationsManager.

Scheduler 负责分配限定的空间、队列资源给运行中的应用。Scheduler 是一个纯调度器,不去监控或跟踪应用的所有状态。还有,对于失败任务或硬件失败,它不保证重启。 Scheduler 基于应用的资源要求执行它的功能;它这样做是基于包含了如内存,cpu,硬盘,网络等的资源Container,。在第一版中,只支持内存。

Scheduler 有一个可插入式的插件策略,负责在集群资源中分割各类队列,应用等。当前的Map-Reduce调度器如 CapacityScheduler 和 FairScheduler 就是这种插件的例子。

CapacityScheduler 支持层级队列 允许更可靠的集群资源共享。
ApplicationsManager 负责接受工作提交,协调第一容器来执行指定的ApplicationMaster 应用,并且ApplicationManager容器失败时提供重启的服务。
NodeManager 是每台机器框架客户端,负责管理容器的资源使用(cpu,内存,硬盘,网络),并报告给 ResourceManager/Scheduler.
每个应用 ApplicationMaster 负责从Scheduler 协调合适的资源容器,监控他们的状态并管理流程。
MRV2 维护与之前的版本 (hadoop-0.20.205)间的 API 兼容性 . 这意味着所有的 Map-Reduce jobs 一次编译后就可以在MRv2上执行。



Hadoop-2.2.0中文文档: Web应用代理
Web应用代理是YARN的一部分. 默认地,它会作为 Resource Manager(RM)的一部分来运行, 但是也可以配置成独立运行的模式。使用代理的原因就是降低通过YARN的web攻击的可能性。

在YARN中,Application Master(AM) 有责任提供web界面并把链接发给RM。这给一些可能的问题打开了大门。 RM 作为一个可信的用户在运行,访问那个web地址的用户会认为可信,它提供的链接也会被认为可信,但当实际上AM作为一个不被信任的用户运行,它给RM的链接可能指向任何恶意的地址。Web应用代理通过警告用户他们正在连接一个不属于他们的不被信任的应用,进而减轻危险。

另外,这个代理也试图降低一个恶意AM上可以有一个用户的影响。它会首先从用户中分离cookie,并用一个登录用户的名字作为独立cookie来替换。 这是因为大多数基于web的认证系统基于cookie验证用户。通过提供这个cookie给一个不被信任的应用,它对一些取得成绩(?)提供了可能。如果cookie被合理地设计过,就应该是相当小,但这仅仅降低了攻击的可能。当前的代理实现无论是对于通过提供链接给恶意站点来阻止AM,还是阻止javascript代码运行,还什么都没有做。实际上,javascript可以用来获取cookie,所以此时从请求中取得的cookie就只有最小的作用。

在未来,我们希望处理上述的攻击病毒,使得访问AM的web界面更加安全。

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条