大家好,今天来介绍yarn安装配置(hadoop的yarn)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
yarn的安装
这段时间抠vue3的源码,在开始时,就碰到了yarn的安装问题
拿到源码:npm install,很好,报错:
接下来安装yarn:
在vscode里面安装yarn的时候,npm install -g yarn 执行成功,
但是在查看版本yarn -version的时候报错皮山陆,如下:
最后是需要在环境变量里面配置系统燃顷变量,地址就是唯睁npm install -g yarn的时候返回的路径,我的如下:
下图是其他人一次执行成功的截图圈出来的是环境变量配置地址
大数据hadoop生态体系之YARN配置和使用(13)
一、YARN框架简介
YARN:Yet Another Resource Negotiator 通用的资源管理系统。为上一层的mapreduce,spark等任务服务提供统一的资源管理和调度。
YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、 NodeManager(NM)、ApplicationMaster(AM)。 ResourceManager 负责所有资源的监控、分配和管理; ApplicationMaster 负责每一个具体应用程序的调度和协调; NodeManager 负责每一个节点的维护。 对于所有的 applications,RM 拥有绝对的控制权和对资源的分配权。而每个 AM 则会和 RM 协商资源,同时和 NodeManager 通信来执行和监控 task。
Yarn是Master/slave主从结构,通过主从管理关系,对所有的计算框架运行在一个集群中,共享一个集群的资源进行按需分配,提高资源的利用率。
二、yarn的运行流程
步骤1 用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。侍答
步骤2 ResourceManager为该应用程序分配第一个Container,并与对应的Node-Manager通信,要求它在这个Container中启动应用程序的ApplicationMaster。
步骤3 ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后老雹慧它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。
步骤4 ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。
步骤5 一旦ApplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务。
步骤6 NodeManager为任务设置肆竖好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
步骤7 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。 在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。
步骤8 应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。
三、yarn的配置
1.修改配置文件mapred-site.xml,配置mapreduce作业任务交个yarn框架进行管理
vim /opt/mysoft/hadoop/etc/hadoop/mapred-site.xml
2.修改配置文件yarn-site.xml
vim /opt/mysoft/hadooop/etc/hadoop/yarn-site.xml
3.配置完成之后启动服务
start-yarn.sh
4.检查启动是否成功,通过jps查看进程 ResourceManager,NodeManager
5.通过http://hadoop00:8088查看webUI界面上yarn的运行画面
6.提交mapreduce作业,到yarn集群环境,查看任务执行情况。
从无到有使用yarn开发react项目(配置及开发基础篇)(小白向)
1.在cmd下输入“npm install create-react-app yarn -g”
2.在指定项目目录下输入 create-react-app your_project_name
例如“create-react-app react_test” (注意项目名称不能有大写字母)
安装完成之后提示如下图所示
3.切换到刚刚安装时创建的文件夹,输入“yarn start”测试安装是否成功,安装成功则会调成一个页面
4.切换到刚刚安装时创建的文件夹,输入“ yarn add antd --save”安装antdesign
打开package.json可以看到antd已成功安装
此时,我们可以在编辑器中打烂明开项目文件夹(此处是vs code),可以清晰的看到create-react-app的生成目录:
此时,系统已经为我们生成了基础的页面(也就是App.js中的组件所展现出来的)
在目录文件夹下拆锋运行“yarn start”命令,基础页面也就是react的logo等,此时的页面长这样:
然后我们就可以在render中引入新的组件渲染我们需要的页面了。例如:
此处我们通过import从antd中按需导入了Button组件,然后在render中渲染,运行“yarn start”指令得到如下页面:
可以看到页面中新增了一个button,至此基础的开发就是这样了,其他需要的组件,旅历晌需要调整的样式可自行添加。
在linux上安装yarn
一、npm方式安装yarn,前提是先首颤庆安装nodejs,并确定npm node命者握令全局可以用
二、安装yarn
三、建立洞纳软连接 将yarn命令软链接到全局
Hadoop的资源管理系统 —— Yarn
Yarn 是 Hadoop 的资源管理系统,用于取代 MapReduce1 的资源调度,改善 MapReduce 的丛余握实现,并且有足够的通用性,可以支持其他的分布式计算模式
一般情况下,应用不直接使用 Yarn 的API,而是通过一些分布式计算框架(MapReduce、Spark等)来间接实现资源调度管理,使用这些框架的 Yarn 应用运行在集群计算层(Yarn)和集群存储层(HDFS、HBase)上。
Yarn 主要由两部分组成:resource manager、node manager。
资源管理器(resource manager)管理集群上资源的使用,节点管理器(node manager)运行在集群中所有节点上且能够启动和监控容器(container)。容器用于执行特定应用程序的进程,每个容器都有资源限制(内存、CPU)。
在 Yarn 上运行一个应用的步骤如图所示:
在 MapReduce1中,有两类守护进程控制作业执行过程: jobtracker、tasktracker 。
jobtracker 通过调度 tasktracker 上运行的任务来协调所有运行在系统上的作业,记录每项作业任务的整体进度情况,若有任务失败,则在另一个 tasktracker 节点上重新调度该任务。
tasktracker 在运行任务的同时将运行进度报告发送给 job tracker。
MapReduce1 的 jobtracker 既要负责资源管理(作业的调度分配),将任务分配给不同的 tasktracker;又要负责任务进度的监控。如果集群非常繁忙,每时每刻都有大量的作业,每个作业下又有很多任务,jobtracker 需要面面俱到了解每个任务的执行情况,负担很重。
在 MapReduce2 对 Yarn 的应用中,一般是会先让 RM 启动容器运行一个 Application Master 的进程,然后该进程负责创建和监控所有的 map task 和 reduce task,了解每个 task 的执行进度,每个 task 都会运行在一个单独的 container 中,这些 container 都是 Application Master 统一调度负责向 RM 申请的,这样就把资源分配和作业运行调度监控解耦,让 Yarn 专注于资源调度。
FIFO 调度器将应用放置在一个队列中,然后按照提交的顺序(先入先出)运行应用。
【优点】简单易懂,不需要任何配置。
【缺点】不适合共享集群。大的应用会占用集群的所有资源,每个应用必须等待直到轮到自己运行,作业平均等待时间较长。
为了避免小作业被大作业阻塞,容量调度器会创建几个队列,其中会有专门队列给小作业执行,保证一提交就渗庆可以启动。
每个队列都被分配了一定比例容量的资源,保证大作业不会占用整个集群的所有资源。一般每个队列对应一个组织,这样就允许了多个组织共享一个 Hadoop 集群,每个组织可以分配到集群资源的一部分。队列可以进一步按层次划分,这样每个组织内的不同用户能够共享该组织队列所分配的资源。
在一个队列内,使用 FIFO 调度策略对应用进行调度,但是一个job可能使用不了整个队列的资源。然而如果这个队列中运行多个job,如果这个队列的资源够用,那毁册么就分配给这些job。
官方文档: https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html 。
容量调度器是 Hadoop2.7 默认的调度器,在 yarn-site.xml 中通过以下参数配置:
"弹性队列" :如果队列 queue 资源不够用了,而其他队列可能是有空闲可用的资源,那么容量调度器可能会将空余的资源分配给队列 queue 中的队列,这种特性称为 "弹性队列"。可以通过 yarn.scheduler.capacity..maximum-capacity 参数来控制队列最大占用集群资源容量的比例。
示例:
在 root 队列下定义两个队列:prod、dev。分别占用集群 40%、60% 的容量。
prod 没有设置最大容量限制,所以当 dev 队列空闲,prod 资源不足时,可能会占用整个集群 100% 的资源。
dev 队列设置了最大容量显示为 75%,也就是及时另外 25% 的资源空闲,dev 最大也只能占用整个集群 75% 的资源。dev 队列下还有子队列 eng、science,容量都是 dev 容量的 50%,没有为子队列设置最大容量,所以每个子队列最大都可能占用 dev 队列 100% 的资源,所以占用的整个集群的绝对资源大小为 30%~75%。
将上述示例的配置添加到 hadoop 配置文件目录下的 capacity-scheduler.xml 中,启动 Yarn,上控制台( http://192.168.190.111:8088/cluster/scheduler )可以看到配置的队列容量限制。
查看配置的每个队列的容量限制是否生效。
可以看到 prod 队列容量限制是 40%,最大容量限制不设置则默认为 100%。
dev 的两个子队列,占用 dev 队列的相对容量大小为 50%~100%,占用整个集群的绝对容量大小为 30%~100%。
默认的容量调度器配置
公平调度器就是在队列内,所有的作业平等地分配资源,如果队列中只有一个作业,可以占用 100% 的资源;此时进来一个新的作业,则会调度到每个作业占用 50% 的资源,以此类推。
公平调度器不仅实现了队列内部的公平,还实现了队列之间的公平。
现在有两个队列 A、B。当 A 执行第一个作业,而 B 没有作业时,A可以占用整个集群的资源;当 A 作业还没完成,B 执行一个作业,则经过一段时间之后,两个作业各占用集群一半的资源;当 B 启动第二个作业时,队列内部的两个队列共享队列 B 的资源,经过一段时间,各占用集群 1/4 的资源,A 继续占用一半的集群资源。最终结果就是资源在用户之间实现了公平共享。
官方文档: https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/FairScheduler.html 。
启用公平调度器,在 yarn-site.xml 中添加以下配置:
创建公平调度配置文件 fair-scheduler.xml,内容如下:
公平调度器使用一个规则列表来确定应用应该放到哪个队列,可配置的值和含义如下:
将上述的配置配置好,启用 Yarn,web console 上看到的调度器如下:
本文地址:https://gpu.xuandashi.com/72891.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!