一起重新开始学大数据-hadoop篇-day48 Yarn

一起重新开始学大数据-hadoop篇-day48 Yarn

在这里插入图片描述

Yarn


Yarn概述

yarn:资源调度系统
  运算资源:运算程序jar、配置文件、cpu、内存、IO
  只负责程序运行所需资源的分配回收等调度任务,与应用程序的内部运作机制完全无关,所以yarn已经成为了通用资源调度平台,许许多多的运算框架都可以借助它来实现资源管理,
such as :MR、spark、storm、TEZ、Flink…

yarn核心组件功能

YARN Client

YARN Client提交Application到RM,它会首先创建一个Application上下文对象,并设置AM必需的资源请求信息,然后提交到RM。YARN Client也可以与RM通信,获取到一个已经提交并运行的Application的状态信息等。

ResourceManager(RM)

RM是YARN集群的Master,负责管理整个集群的资源和资源分配。RM作为集群资源的管理和调度的角色,如果存在单点故障,则整个集群的资源都无法使用。在2.4.0版本才新增了RM HA的特性,这样就增加了RM的可用性。

NodeManager(NM)

NM是YARN集群的Slave,是集群中实际拥有实际资源的工作节点。我们提交Job以后,会将组成Job的多个Task调度到对应的NM上进行执行。Hadoop集群中,为了获得分布式计算中的Locality特性,会将DN和NM在同一个节点上运行,这样对应的HDFS上的Block可能就在本地,而无需在网络间进行数据的传输。

Container

Container是YARN集群中资源的抽象,将NM上的资源进行量化,根据需要组装成一个个Container,然后服务于已授权资源的计算任务。计算任务在完成计算后,系统会回收资源,以供后续计算任务申请使用。Container包含两种资源:内存和CPU,后续Hadoop版本可能会增加硬盘、网络等资源。

ApplicationMaster(AM)

AM主要管理和监控部署在YARN集群上的Application,以MapReduce为例,MapReduce Application是一个用来处理MapReduce计算的服务框架程序,为用户编写的MapReduce程序提供运行时支持。通常我们在编写的一个MapReduce程序可能包含多个Map Task或Reduce Task,而各个Task的运行管理与监控都是由这个MapReduceApplication来负责,比如运行Task的资源申请,由AM向RM申请;启动/停止NM上某Task的对应的Container,由AM向NM请求来完成。

查看MapReduce任务的输出日志

historyserver进程作用

把之前本来散落在nodemanager节点上的日志统计收集到hdfs上的指定目录中

启动historyserver

执行sbin/mr-jobhistory-daemon.sh start historyserver
通过master:19888观察

application id

获取application id 通过执行
yarn logs applicationId (application id )

MapReduce在yarn上的执行过程在这里插入图片描述

图示部分关键字分析
什么是YarnChild:
MrAppMaster运行程序时向resouce manager请求的maptask、reduceTask,也就是运行程序的容器,其实它就是一个运行程序的进程
FIFO Scheduler
FIFO是Hadoop设计之初提供的一个最简单的调度机制: 即先来先服务。所有应用程序被统一提交到一个队里中,Hadoop按照提交顺序依次运行这些作业。只有等先来的应用程序资源满足后,再开始为下一个应用程序进行调度运行和分配资源。
  优点:
原理是和实现简单。也不需要任何单独的配置
  缺点:
  1, 无法提供QoS,只能对所有的任务按照同一优先级处理。
  2, 无法适应多租户资源管理。先来的大应用程序把集群资源占满,导致其他用户的程序无法得到及时执行。
  3, 应用程序并发运行程度低。

Yarn资源调度策略(转)

YARN 资源调度器是直接从MR基础上修改而来,它提供了三种可用资源调度器,分别是FIFO Scheduler、Yahoo!的Capacity Scheduler 和Fackbook 的 Fair Scheduler,它们的原理和细节基本上与MR的三种调度器一致。都是层级队列方式组织资源的。这种方式符合公司或部门组织架构,有利于资源在不同资源间分配和共享,进而提高集群资源利用率。

优化


1,通过修改map的切片大小控制map数据量(尽量和block大小保持一致)
并不是map越多越好,根据集群资源
set mapred.max.split.size=256000000
2,合并小文件。因为一个文件会至少生成一个map

3,避免数据倾斜
  数据倾斜无非就是大量的相同的key被partition分配到同一个分区,造成分配不均匀的情况,这样可能会造成一种情况reduce进度一直在百分之99长时间无法结束
  解决方法大致:
  增加reduce个数
  自定义分区,需要用户自己继承partition类,指定分区策略
  重新设计key

4,combine操作
5,mapjoin操作
👉详见该系列上一章实操部分mapjoin
6,适当备份,因为备份多可以本地化生成map任务

大数据体系概述图


看看大数据体系概述图,后面还要学什么部分(0_o)!
在这里插入图片描述
在这里插入图片描述

|
|
|
|

上一章-hadoop篇-day47 mapreduce(总)
下一章-hadoop篇-day49 Hive简介和安装
|
|
|
|
|

听说长按大拇指👍会发生神奇的事情呢!好像是下面的画面,听说点过的人🧑一个月内就找到了对象的💑💑💑,并且还中了大奖💴$$$,考试直接拿满分💯,颜值突然就提升了😎,虽然对你好像也不需要,是吧,吴彦祖🤵!

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的动作太慢了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值