415KB
18.5MB
2.18MB
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槽/reduce槽分离而导致集群资源闲置的尴尬局面。
纱线结构的分类
集中式架构集中式调度器的特点是资源调度和应用管理都在一个进程中完成。开源行业的典型代表就是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,就可以在界面中查看任务的运行状态。