hadoop的yarn怎么读(yarn常用命令)
本文目录
yarn常用命令
1,yarn top: 类似linux里的top命令,查看正在运行的程序资源使用情况 2, yarn queue -status 队列名 :查看指定queue使用情况 3,yarn application -list -appStates 【ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED】 yarn application -list -appTypes : 查看app状态 yarn application -movetoqueue application_name -queue 队列名 :移动app到对应的队列 yarn application -kill application_name : kill掉app yarn application -status application_name :查看app状态 4,yarn applicationattempt -list application_name : 查看app尝试信息 5,yarn classpath --glob : 打印类路径 6,yarn container -list appattempt_name : 打印正在执行任务的容器信息 yarn container -status container_name : 打印当前容器信息 7,yarn jar args... : 提交任务到yarn 8,yarn logs -applicationId application_name: 查看app运行日志 9,yarn node -all -list : 查看所有节点信息 10,yarn daemonlog -getlevel n0:8088 rg.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl : 查看守护进程日志级别 11,yarn resourcemanager : RMStateStore的格式化. 如果过去的应用程序不再需要,则清理RMStateStore 12, Usage: yarn rmadmin -refreshQueues 重载队列的ACL,状态和调度器特定的属性,ResourceManager将重载mapred-queues配置文件 -refreshNodes 动态刷新dfs.hosts和dfs.hosts.exclude配置,无需重启NameNode。 dfs.hosts:列出了允许连入NameNode的datanode清单(IP或者机器名) dfs.hosts.exclude:列出了禁止连入NameNode的datanode清单(IP或者机器名) 重新读取hosts和exclude文件,更新允许连到Namenode的或那些需要退出或入编的Datanode的集合。 -refreshUserToGroupsMappings 刷新用户到组的映射。 -refreshSuperUserGroupsConfiguration 刷新用户组的配置 -refreshAdminAcls 刷新ResourceManager的ACL管理 -refreshServiceAclResourceManager 重载服务级别的授权文件。 -getGroups 获取指定用户所属的组。 -transitionToActive 尝试将目标服务转为 Active 状态。如果使用了–forceactive选项,不需要核对非Active节点。如果采用了自动故障转移,这个命令不能使用。虽然你可以重写–forcemanual选项,你需要谨慎。 -transitionToStandby 将服务转为 Standby 状态. 如果采用了自动故障转移,这个命令不能使用。虽然你可以重写–forcemanual选项,你需要谨慎。 -failover 启动从serviceId1 到 serviceId2的故障转移。如果使用了-forceactive选项,即使服务没有准备,也会尝试故障转移到目标服务。如果采用了自动故障转移,这个命令不能使用。 -getServiceState 返回服务的状态。(注:ResourceManager不是HA的时候,时不能运行该命令的) -checkHealth 请求服务器执行健康检查,如果检查失败,RMAdmin将用一个非零标示退出。(注:ResourceManager不是HA的时候,时不能运行该命令的) -help 显示指定命令的帮助,如果没有指定,则显示命令的帮助。 ========================================== yarn application 1、-list 列出所有 application 信息 示例:yarn application -list 2、-appStates 《States》 跟 -list 一起使用,用来筛选不同状态的 application,多个用","分隔; 所有状态:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED 示例:yarn application -list -appStates RUNNING 3、-appTypes 《Types》 跟 -list 一起使用,用来筛选不同类型的 application,多个用","分隔; 如 MAPREDUCE 示例:yarn application -list -appTypes MAPREDUCE 4、-kill 《Application ID》 杀死一个 application,需要指定一个 Application ID 示例:yarn application -kill application_name 5、-status 《Application ID》 列出 某个application 的状态 示例:yarn application -status application_name 6、-movetoqueue 《Application ID》 移动 application 到其他的 queue,不能单独使用 7、-queue 《Queue Name》 与 movetoqueue 命令一起使用,指定移动到哪个 queue 示例:yarn application -movetoqueue application_name -queue other
hadoop 2.x安装需要单独安装yarn吗
不需要
1 hadoop版本
hadoop-2.2.0,这是hadoop2.0的第一个稳定版,在2013年10月15日发布。
2 安装机器
这里以2台机器为例,一台master,一台slaver。多台slaver的情况一样。
master:hadoop2-m1
slaver:hadoop2-s1
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
3 配置
hadoop安装的根目录是 HADOOP_HOME=/your/path/to/hadoop-2.2.0
则配置目录默认是:HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
需要对$HADOOP_CONF_DIR目录下的四个配置文件进行配置:
3.1 设置JAVA_HOME环境变量
export JAVA_HOME=/your/path/to/jdkdir
3.2 设置core-site.xml
《configuration》
《property》
《name》fs.defaultFS《/name》
《value》hdfs://hadoop2-m1:8020《/value》
《/property》
《property》
《name》hadoop.tmp.dir《/name》
《value》/home/tmp/hadoop2.0《/value》
《/property》
《/configuration》
3.3 设置hdfs-site.xml
《configuration》
《property》
《name》dfs.replication《/name》
《value》1《/value》
《/property》
《property》
《name》dfs.namenode.name.dir《/name》
《value》/home/dfs/name《/value》
《/property》
《property》
《name》dfs.datanode.data.dir《/name》
《value》/home/dfs/data《/value》
《/property》
《property》
《name》dfs.permissions《/name》
《value》false《/value》
《/property》
《/configuration》
3.4 设置mapred-site.xml
《configuration》
《property》
《name》mapreduce.framework.name《/name》
《value》yarn《/value》
《/property》
《/configuration》
3.5 yarn-site.xml
《configuration》
《property》
《name》yarn.resourcemanager.address《/name》
《value》hadoop2-m1:8032《/value》
《/property》
《property》
《name》yarn.resourcemanager.scheduler.address《/name》
《value》hadoop2-m1:8030《/value》
《/property》
《property》
《name》yarn.resourcemanager.resource-tracker.address《/name》
《value》hadoop2-m1:8031《/value》
《/property》
《property》
《name》yarn.resourcemanager.admin.address《/name》
《value》hadoop2-m1:8033《/value》
《/property》
《property》
《name》yarn.resourcemanager.webapp.address《/name》
《value》hadoop2-m1:8088《/value》
《/property》
《property》
《name》yarn.resourcemanager.scheduler.class《/name》
《value》org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler《/value》
《/property》
《property》
《name》yarn.nodemanager.aux-services《/name》
《value》mapreduce_shuffle《/value》
《/property》
《property》
《name》yarn.nodemanager.aux-services.mapreduce.shuffle.class《/name》
《value》org.apache.hadoop.mapred.ShuffleHandler《/value》
《/property》
《/configuration》
注意:yarn.nodemanager.aux-services的值是“mapreduce_shuffle”(在hadoop-2.1-beta中的值是“mapreduce.shuffle”)
4 启动
4.1 格式化
cd $Hadoop_HOME
bin/hdfs namenode -format
4.2 在hadoop2-m1中启动 namenode 和 resourcemanager
sbin/hadoop-daemon.sh start namenode
sbin/yarn-daemon.sh start resourcemanager
#停止服务的命令
sbin/hadoop-daemon.sh stop namenode
sbin/yarn-daemon.sh stop resourcemanager
4.3 在hadoop2-s1中启动 datanode 和 nodemanager
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start nodemanager..
#停止服务的命令
sbin/hadoop-daemon.sh stop datanode
sbin/yarn-daemon.sh stop nodemanager
4.4 在hadoop2-m1中启动 proxyserver 和 historyserver
sbin/yarn-daemon.sh start proxyserver
sbin/mr-jobhistory-daemon.sh start historyserver
#停止服务的命令
sbin/yarn-daemon.sh stop proxyserver
sbin/mr-jobhistory-daemon.sh stop historyserver
5 检查和测试
5.1 检查以下两个页面是否能打开
***隐藏网址***
***隐藏网址***
5.2 运行以下hdfs命令
bin/hdfs dfs -mkdir /test/input1
bin/hdfs dfs -put NOTICE.txt /test/input1/
bin/hdfs dfs -put README.txt /test/input1/
bin/hdfs dfs -get /test/input1/NOTICE.txt /tmp/
bin/hdfs dfs -cat /test/input1/NOTICE.txt
5.3 运行mapreduce job
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar grep /test/input1 /test/output1 ’code’
6 实战tips
第一次安装hadoop2.0版本的时候,最好是像本文一样先做最基本的配置,让hadoop2.0能正常启动,然后再逐步加上其他的特性。
大数据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 ***隐藏网址*** 6.提交mapreduce作业,到yarn集群环境,查看任务执行情况。
yarn是什么
Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
YARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG(有向无环图)。
Yarn知识
在实际系统中,资源本身是多维度的,包括CPU、内存、网络I/O和磁盘I/O等,因此,如果想精确控制资源分配,不能再有slot的概念,最直接的方法就是是让任务直接向调度器申请自己需要的资源(比如某个任务可申请1GB 内存和1个CPU),而调度器则按照任务实际需求为其精细地分配对应的资源量,不再简单的将一个Slot分配给它,Hadoop 2.0正式采用了这种基于真实资源量的资源分配方案。
Hadoop 2.0最基本的设计思想是将JobTracker的两个主要功能,即资源管理和作业调度/监控分成两个独立的进程。全局的ResourceManager(RM)和与每个应用相关的ApplicationMaster(AM)。
ResourceManager(RM) :负责对各NM上的资源进行统一管理和调度。对AM申请的资源请求分配相应的空闲Container。将AM分配空闲的Container运行并监控其运行状态。主要由两个组件构成:调度器和应用程序管理器。
调度器(Scheduler) :调度器根据容量、队列等限制条件,将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位是Container,从而限定每个任务使用的资源量。Shceduler不负责监控或者跟踪应用程序的状态,也不负责任务因为各种原因而需要的重启(由ApplicationMaster负责)。
调度器是可插拔的,例如CapacityScheduler、FairScheduler。
应用程序管理器(Applications Manager) :应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动AM、监控AM运行状态并在失败时重新启动等,跟踪分给的Container的进度、状态也是其职责。
NodeManager(NM) :NM是每个节点上的资源和任务管理器。它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;同时会接收并处理来自AM的Container 启动/停止等请求。
ApplicationMaster(AM) :用户提交的应用程序均包含一个AM,负责应用的监控,跟踪应用执行状态,重启失败任务等。AM是应用框架,它负责向RM协调资源,并且与NM协同工作完成Task的执行和监控。MapReduce就是原生支持的一种框架,可以在YARN上运行Mapreduce作业。有很多分布式应用都开发了对应的应用程序框架,用于在YARN上运行任务,例如Spark,Storm等。
Container :是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container 表示的。YARN会为每个任务分配一个Container且该任务只能使用该Container中描述的资源。
1)用户向YARN中提交应用程序,其中包括ApplicationMaster程序、启动AM的命令、用户程序等。
2)ResourceManager为该应用程序分配第一个Container,并与对应的Node Manager通信,要求它在这个Container中启动应用程序的AM。
3)AM首先向RM注册,这样用户可以直接通过RM查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。
4)AM采用轮询的方式通过RPC协议向RM申请和领取资源。
5)一旦AM申请到资源后,便与对应的NM通信,要求它启动任务。
6)NM为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
7)各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向AM查询应用程序的当前运行状态。
8)应用程序运行完成后,AM向RM注销并关闭自己。
当用户向YARN中提交一个应用程序后,YARN将分两个阶段运行该应用程序:第一个阶段是启动AM;第二个阶段是由AM创建应用程序,为它申请资源,并监控它的整个运行过程,直到运行完成。
ResourceManager将某个NodeManager上资源分配给任务(资源调度)后,NodeManager需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证(资源隔离)。
内存资源
1)yarn.nodemanager.resource.memory-mb 该节点上YARN可使用的物理内存总量:
假设我的这个节点上的内存有48G,其中25%是要给Linux的,而剩余的75%给大数据进程。其中,一般把DN和NM放置在同一个机器上(数据本地化)。默认的DN是给到4个G,而NM是给到3个G。(这两个参数分别是在hadoop-env.sh和yarn-env.sh两个shell脚本当中设置)。
我们的contanier最多也就可以用29个G了, yarn.nodemanager.resource.memory-mb,当这个参数设置成剩余全部内存时意味着我们的NM在执行tasks的时候可以使用到29个G。
2)yarn.scheduler.minimum-allocation-mb 单个任务可申请的最少物理内存量:
一个contnaier最小将分配多少的G,我们生产上一般是设置成2个G,要是机器上剩余的内存达不到2个G,就不再在这个机器上开启container。
3)yarn.scheduler.maximum-allocation-mb 单个任务可申请的最多物理内存量
当一个container开启以后,在上面放置的task不是一下子就使用到最大内存极限的,一般会先个2个G(就是最小内存限制),如果不够了就是继续增加,直到最大内存限制,还不够就报错。所以最大内存设置一般和整个节点的contanier可用内存设置是一样大。
4.2. CPU资源
vcore:虚拟cpu,yarn自己引入的新概念,因为不同的物理core的性能不同,所以为了每个core的计算能力能一致点,这个时候设置了一个vcore。一般1个物理core对应2个vcore,也有公司是1:1的。
cpu同样也有三组参数:
yarn.nodemanager.resource.cpu-vcores yarn.scheduler.minimum-allocation-vcores yarn.scheduler.maximum-allocation-vcores
三组默认值分别是8,1,8。假如物理core是8个话,要考虑究竟要个多少个core给大数据使用。如果是给了6个core预留2个core给其他进程,这样的vcore将有12个。
FIFO Scheduler把应用按提交的顺序排成一个队列,这是一个 先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配,以此类推。 FIFO Scheduler是最简单也是最容易理解的调度器,也不需要任何配置,但它并不适用于共享集群。大的应用可能会占用所有集群资源,这就导致其它应用被阻塞。在共享集群中,更适合采用Capacity Scheduler或Fair Scheduler,这两个调度器都允许大任务和小任务在提交的同时获得一定的系统资源。 从图中可以看出,在FIFO 调度器中,小任务会被大任务阻塞。
而对于Capacity调度器,有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间。
在Fair调度器中,我们不需要预先占用一定的系统资源,Fair调度器会为所有运行的job动态的调整系统资源。如图所示,当第一个大job提交时,只有这一个job在运行,此时它获得了所有集群资源;当第二个小任务提交后,Fair调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。 需要注意的是,在图Fair调度器中,从第二个任务提交到获得资源会有一定的延迟,因为它需要等待第一个任务释放占用的Container。小任务执行完成之后也会释放自己占用的资源,大任务又获得了全部的系统资源。最终的效果就是Fair调度器即得到了高的资源利用率又能保证小任务及时完成。
调度器的使用是通过yarn-site.xml配置文件中的 yarn.resourcemanager.scheduler.class 参数进行配置的,默认采用Capacity Scheduler调度器。如果我们要使用Fair调度器,需要在这个参数上配置FairScheduler类的全限定名: org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler 。
Linux里面YARN作用是什么
yarn是一个进行nodejs包管理的工具,可以方便管理nodejs依赖包,功能类似npm,但是包依赖管理上更方便。
更多文章:
winzip手机版官方下载(winzip是运行在什么操作系统下的解压缩软件)
2024年7月30日 14:25
睿知云交互式教学工具下载后怎么打开?教学工具有哪些 老师最喜欢的教学工具软
2024年7月23日 23:14
几何图霸最新版必须注册才能用吗?春秋图霸:两位“不鸣则已,一鸣惊人“的霸主是谁
2024年7月5日 02:23
9377烈焰传奇手游官网(如何屏蔽掉开就自动弹出的9377烈焰游戏的注册网页窗口,求大神解)
2024年7月23日 13:04