28.00 KB
5.24 MB
7.40 MB
152.00 MB
384.00 MB
Yarn是一个通用的资源管理系统,专门用于资源管理和调度。我们不仅可以统一管理不同的资源,还可以共享数据。Yarn稳定版具有强大的数据处理功能,可以帮助用户减少ResourceManager的资源消耗。
软件介绍
Hadoop Yarn(又一个资源协商者)是一个新的Hadoop资源管理器。它是一个通用的资源管理系统,可以为上层应用提供统一的资源管理和调度。它的引入在利用率、统一资源管理和数据共享方面给集群带来了巨大的好处。Yarn软件优势
JobTracker(现为ResourceManager)的资源消耗大大降低,监控各个作业子任务的程序都是分布式的,更加安全美观。在新的纱线中,ApplicationMaster是一个可更换的部件。用户可以针对不同的编程模型编写自己的AppMst,让更多类型的编程模型可以在Hadoop集群中运行。可以参考hadoop Yarn官方配置模板中的mapred-site.xml配置。
资源的表示是基于内存的(在当前版本的Yarn中,不考虑cpu占用),比之前的剩余槽数更合理。
在旧的框架中,jobTracker的一个很大的负担就是监视作业下任务的运行状态。现在,这部分扔给了ApplicationMaster,ResourceManager中有一个模块叫ApplicationsMasters(注意不是ApplicationMaster),它监控ApplicationMaster的运行状态,如果出了问题,就会在其他机器上重启。
容器是Yarn为未来资源隔离提出的框架。这要借鉴梅索斯的工作。目前是只提供java虚拟机内存隔离的框架。hadoop团队的设计思路应该是未来支持更多的资源调度和控制。由于资源表示为内存,不存在之前map slot/reduce slot分离导致集群资源闲置的尴尬情况。
纱线结构分类
集中式架构集中式调度程序的特点是资源的调度和应用程序的管理都在一个进程中完成。开源行业的典型代表就是MRv1 JobTracker的实现。这种设计的缺点很明显,扩展性差:首先,集群的规模有限;其次,很难将新的调度策略集成到现有代码中。例如,以前只支持MapReduce作业,现在支持流作业。将流式作业的调度策略嵌入集中调度是一项困难的工作。
双层调度体系结构
为了克服集中式调度器的不足,双层调度器是一种简单的解决方案,可以看作是分治机制或策略去中心化机制:双层调度器仍然保留了简化的集中式资源调度器,但是与特定任务相关的调度策略被分散到各个应用调度器。这种调度器的典型代表是Mesos。Mesos调度器由两部分组成,即资源调度器和框架(应用)调度器。其中,资源调度器负责将集群中的资源分配给各个框架(应用),而框架(应用)调度器负责进一步将资源分配给内部任务。用户可以很容易地访问Mesos的框架或系统。
两层调度器的特点是:每个帧调度器不知道整个集群的资源使用情况,只是被动地接受资源;资源调度器只把可用的资源推送给各个框架,框架自己选择是使用还是拒绝这些资源;框架一旦接收到新的资源,就进一步分配给其内部任务,然后实现两级调度。但是这个调度器也有缺点,主要表现在以下两个方面:1。每个框架都无法知道整个集群的实时资源使用情况;采用悲观锁,并发粒度小。
纱线使用说明
首先,需要修改mapred-site.xml文件。从网上下载的hadoop配置文件往往包含mapred-site.xml.template我们可以重命名这个文件。修改mapred-site.xml文件的内容,并添加以下内容。
mapreduce.framework.name
故事
修改yarn-site.xml的配置文件,增加以下内容。
yarn.nodemanager.aux-services
mapreduce_shuffle
只需启动yarn,在hadoop安装根目录下执行以下命令:。/sbin /sbin/start-yarn.sh如果正确执行,会提示:正在启动yarn守护进程。
如何检查纱线是否启动成功?通过查看流程,我们输入jps。如果发现多了两个后台进程,NodeManager和ResourceManager,就证明启动成功了。
Yarn有自己的管理界面。我们只需要输入地址:http://localhost:8088/cluster,就可以在界面中查看任务的运行状态。