YARN学习

YARN的概述

在这里插入图片描述

MapReduce 1.x的简介

了解一下 因为已经过时了~

第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成,对应Hadoop版本为Hadoop 1.x和0.21.X,0.22.x。

MapReduce1的角色

-1.Client:作业提交发起者。
-2.JobTracker:初始化作业。分配作业,与TaskTracker通信。协调整个作业。
-3.TaskTracker:保持JobTracker通信,在分配的数据片段上执行MapReduce任务。

yarn的设计思想

yarn的基本思想是将资源管理和作业调度/监视功能划分为单独的守护进程。其思想是拥有一个全局ResourceManager(RM),以及每个应用程序拥有一个ApplicationMaster (AM)。应用程序可以是单个作业,也可以是一组作业

YARN的架构及组件

在这里插入图片描述

一个ResourceManager和多个NodeManager构成了yarn资源管理框架。他们是yarn启动后长期运行的守护进程,来提供核心服务。

ResourceManager,是在系统中的所有应用程序之间仲裁资源的最终权威,即管理整个集群上的所有资源分配,内部含有一个Scheduler(资源调度器)

NodeManager,是每台机器的资源管理器,也就是单个节点的管理者,负责启动和监视容器(container)资源使用情况,并向Resourcevanoger及其 Scheduler鸨然使用情况

container:即集群上的可使用资源,包含cpu、内存、磁盘、网络等

ApplicatiorMaster(简称AM)实际上是框架的特定的库,每启动一个应用程序,都会启动一个AM,它的任务是与ResourceManoger协商资源,并与NodeManoger一起执行和监视任务

YARN的配置

yarn属于hadoop的一个组件,不需要再单独安装程序,hadoop中已经存在配置文件的设置,本身就是一个集群,有主节点和从节点。

注意<value></value>之间的值不能有空格

在mapred-site.xml中的配置如下

<configuration>
<!--指定mopreduce使用yarn资源管理器-->
    <property>
        <name>mapreduce.framework.name</name>		
        <value>yarn</value>
	</property>
<!--配置作业历史服务器的地址-->
<property>
	<name>mapreduce.jobhistory.address</name>
    <value>tianqinglong01:10020</value>
</property>
<!--配置作业历史服务器的http地址-->
    <property>
		<name>mopreduce-jobhistory.webapp.address</name>
        <value>tianqinglong01:19888</value>
	</property>
</configurations>

在yarn-site.xml中的配置如下

<configuration>
    <!--指定resourcemanager的主机名-->
    <property>
		<name>yarn.resourcemanager.hostname</name>
      	<value>tianqinglong01</value>
	</property>
<!--指定yarn的shuffle技术-->
    <property>
		<name>yarn.nodemanager.aux-services</name>	
		<value>mapreduce_shuffle</value>
	</property>
<!--指定shuffle对应的类-->
    <property>
		<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>
    <!--配置resourcemanager的scheduler的内部通讯地址-->
    <property>
		<name>yarn.resourcemanager.scheduler.address</name>	
		<value>tianqinglong01:8030</value>
	</property>
<!--配置resoucemanager的资源调度的内部通讯地址-->
    <property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
        <value>tianqinglong:8031</value>
	</property>
<!--配置resourcemanager的内部通讯地址-->
    <property>
		<name>yarn.resourcemanager.address</name>	
		<value>tianqinglong:8032</value>
	</property>
<!--配置resourcemanager的管理员的内部通讯地址-->
    <property>
		<name>yarn.resourcemanager.admin.address</name>
        <value>tianqinglong:8033</value>
	</property>
 <!--配置resourcemanager的web ui的监控页面-->
    <property>
		<name>yarn.resourcemanager.webapp.address</name>
        <value>tianqinglong:8088</value>
	</property>   
</configuration>

历史服务

如果需要查看yarn的作业历史,需要打开历史服务:

1.停止当前的yarn进程
stop-yarn.sh

2.在yarn-site.xml中添加配置
<property>
	<name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
    <value>640800</value>
</property>
:wq

3.分发到其他节点
scp yarn-site.xml tianqinglong02:$PWD
scp yarn-site.xml tianqinglong03:$PWD

4.启动yarn进程
[root@tianqinglong01 hadoop]# start-yarn.sh

5.开启历史服务
mr-jobhistory-server.sh start historyserver

6.查看
jps

YARN的job提交流程

在MR程序运行时,有五个独立的进程:

- YarnRunner:用于提交作业的客户端程序
- ResourceManager : yarn资源管理器,负责协调集群上计算机资源的分配
- NodeManager : yarn节点管理器,负责启动和监视集群中机器上的计算容器(container)
- Application Master:负责协调运行MapReduce作业的任务,他和任务都在容器中运行,这些容器由资源管理器分配并由节点管理器进行管理。
- HDFS:用于共享作业所需文件。

YARN的案例提交

MapReduce

[root@tianqinglong01 mapreduce]# hadoop jar hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output
[root@tianqinglong01 mapreduce]# hdfs dfs -cat /output
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值