hadoop学习笔记3-yarn

news2025/1/12 16:05:37

4.YARN

yarn本质上是一个负责管理资源节点、调度资源节点的资源调度平台,负责为运算程序提供服务器计算资源,把任务调度到合适的节点上执行

4.1yarn架构

yarn 主要由ResourceManager、NodeManager、applicationmaster组件构成

yarn将资源管理和应用程序管理两部分分离开,分别由ResouceManager和ApplicationMaster负责

ResourceManager(RM)
RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM),通俗讲是用于管理NodeManager节点的资源,包括cup、内存等。
ApplicationMaster(AM)
每个应用程序对应一个ApplicationMaster。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配),通俗讲是管理和监控任务,随着任务创建而创建,任务的完成而结束。
NodeManager(NM)
NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的Container启动/停止等各种请求。 

4.2三台resourcemanager配置

1.resourcemanager搭建

配置yarn-env.sh

设置内存占比,yarn的内存为256M

source /etc/profile

JAVA=$JAVA_HOME/bin/java

JAVA_HEAP_MAX=-Xmx256m

YARN_HEAPSIZE=256

export YARN_RESOURCEMANAGER_HEAPSIZE=256

配置yarn-site.xml

<!-- RM1 configs start -->
    <property>
        <name>yarn.resourcemanager.address.rm1</name>
        <value>nn1:8032</value>
        <description>ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等</description>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>nn1</value>
        <description>ResourceManager主机名</description>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm1</name>
        <value>nn1:8030</value>
        <description>ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.https.address.rm1</name>
        <value>nn1:8089</value>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>nn1:8088</value>
        <description>ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
        <value>nn1:8031</value>
        <description>ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.admin.address.rm1</name>
        <value>nn1:8033</value>
        <description>ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等</description>
    </property>
    <!-- RM1 configs end -->

    <!-- RM2 configs start -->
    <property>
        <name>yarn.resourcemanager.address.rm2</name>
        <value>nn2:8032</value>
        <description>ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等</description>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>nn2</value>
        <description>ResourceManager主机名</description>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm2</name>
        <value>nn2:8030</value>
        <description>ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资>源等。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.https.address.rm2</name>
        <value>nn2:8089</value>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>nn2:8088</value>
        <description>ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
        <value>nn2:8031</value>
        <description>ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.admin.address.rm2</name>
        <value>nn2:8033</value>
        <description>ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等</description>
    </property>
    <!-- RM2 configs end -->

<!-- RM3 configs start -->
    <property>
        <name>yarn.resourcemanager.address.rm3</name>
        <value>nn3:8032</value>
        <description>ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等</description>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm3</name>
        <value>nn3</value>
        <description>ResourceManager主机名</description>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address.rm3</name>
        <value>nn3:8030</value>
        <description>ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.https.address.rm3</name>
        <value>nn3:8089</value>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.address.rm3</name>
        <value>nn3:8088</value>
        <description>ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.resource-tracker.address.rm3</name>
        <value>nn3:8031</value>
        <description>ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。</description>
    </property>

    <property>
        <name>yarn.resourcemanager.admin.address.rm3</name>
        <value>nn3:8033</value>
        <description>ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等</description>
    </property>

分发配置文件并启动resourcemanager

#分发配置文件到每个机器中

scp_all.sh /usr/local/hadoop/etc/hadoop/yarn-env.sh /usr/local/hadoop/etc/hadoop/ scp_all.sh /usr/local/hadoop/etc/hadoop/yarn-site.xml /usr/local/hadoop/etc/hadoop/

# 在nn1、nn2和nn3上启动resourceManager

yarn-daemon.sh start resourcemanager

此时集群上各个服务器此时的进程情况

三台resourcemanager启动之后都是active状态,说明resourcemanager还没有进行active选举

2.配置resourcemanager的HA及元数据同步

resourcemanager的active选举是借助zookeeper完成的,这个过程与namenode的active选举类似,同时通过在zookeeper上创建新的节点,如果哪个resourcemanager先在zookeeper上创建节点成功,那么这个resourcemanager状态就是active,剩下的两个状态就是standby;在active选举结束以后,active的resourcemanager会自动在zookeeper上创建一个新的节点,用于存储元数据信息,standby的resourcemanager会读取该节点的元数据信息,实现resourcemanager的元数据同步

yarn-site.xml中增加如下配置

<!-- yarn ha start -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
        <description>是否开启yarn ha</description>
    </property>

    <property>
        <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
        <value>true</value>
        <description>ha状态切换为自动切换</description>
    </property>

    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2,rm3</value>
        <description>RMs的逻辑id列表</description>
    </property>

    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>nn1:2181,nn2:2181,nn3:2181</value>
        <description>ha状态的存储地址</description>
    </property>
    <!-- yarn ha end -->


<!-- 元数据存储共享 -->
<property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>pseudo-yarn-rm-cluster</value>
        <description>集群的Id</description>
    </property>

    <property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
        <description>默认值为false,也就是说resourcemanager挂了相应的正在运行的任务在rm恢复后不能重新启动</description>
    </property>

    <property>
        <name>yarn.resourcemanager.store.class</name>                <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
        <description>配置RM状态信息存储方式3有两种,一种是FileSystemRMStateStore,另一种是MemoryRMStateStore,还有一种目前较为主流的是zkstore</description>
    </property>

    <property>
        <name>yarn.resourcemanager.zk.state-store.address</name>
        <value>nn1:2181,nn2:2181,nn3:2181</value>
        <description>当使用ZK存储时,指定在ZK上的存储地址。</description>
    </property>
<!-- 元数据存储共享 -->

分发配置文件重启resourceManager

#分发配置文件到每个机器中

scp_all.sh /usr/local/hadoop/etc/hadoop/yarn-site.xml /usr/local/hadoop/etc/hadoop/

# 在nn1、nn2和nn3上重启resourceManager

yarn-daemon.sh stop resourcemanager

yarn-daemon.sh start resourcemanager 

此时在三台resourcemanager中成功选举了active

查看zookeeper,此时多了两个节点 

yarn-leader-election:选举leader的元数据信息

rmstore:存储元数据的节点

4.3三台nodemanager配置

1.nodemanager搭建

yarn-site.xml中增加如下配置

<!-- nodeManager基础配置 -->
<property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/yarn/local</value>
    <description>中间结果存放位置,存放执行Container所需的数据如可执行程序或jar包,配置文件等和运行过程中产生的临时数据</description>
</property>

<property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data/yarn/logs</value>
    <description>Container运行日志存放地址(可配置多个目录)</description>
</property>

<property>
    <name>yarn.nodemanager.address</name>
    <value>0.0.0.0:9103</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序</description>
</property>
<property>
    <name>yarn.nodemanager.webapp.address</name>
    <value>0.0.0.0:8042</value>
</property>

<property>
    <name>yarn.nodemanager.localizer.address</name>
    <value>0.0.0.0:8040</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
    <name>mapreduce.shuffle.port</name>
    <value>23080</value>
</property>
<!-- nodeManager基础配置 -->

分发配置文件并启动nodemanager

#分发yarn-site.xml到各个机器中

scp_all.sh /usr/local/hadoop/etc/hadoop/yarn-site.xml /usr/local/hadoop/etc/hadoop/

#启动s1、s2、s3的nodemanager

yarn --workers --daemon start nodemanager

2.nodemanager资源规划配置

如下是目前nodemanager的节点资源情况需要按照实际服务器资源进行配置

yarn-site.xml中增加如下配置

<!-- nodeMananger资源限定 start -->
<property>
    <name>yarn.scheduler.minimum-allocation-vcores</name>
    <value>1</value>
    <description>单个任务可申请的最小虚拟CPU个数</description>
</property>

<property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>3</value>
    <description>单个任务可申请的最大虚拟CPU个数,此参数对应yarn.nodemanager.resource.cpu-vcores,建议最大为一个物理CPU的数量</description>
</property>
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>1536</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>1024</value>
    <description>单个任务可申请的最多物理内存量</description>
</property>
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>3</value>
    <description>该节点上YARN可使用的虚拟CPU个数,一个物理CPU对应3个虚拟CPU</description>
</property>
<!-- 重要开始 end -->
<!-- 关闭内存检测 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    <description>虚拟内存检测,默认是True</description>
</property>

<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
    <description>物理内存检测,默认是True</description>
</property>
<property>
    <name>yarn.application.classpath</name>
    <value>
        $HADOOP_CONF_DIR,
        $HADOOP_COMMON_HOME/share/hadoop/common/*,
        $HADOOP_COMMON_HOME/share/hadoop/common/lib/*,
        $HADOOP_COMMON_HOME/share/hadoop/hdfs/*,
        $HADOOP_COMMON_HOME/share/hadoop/hdfs/lib/*,
        $HADOOP_COMMON_HOME/share/hadoop/mapreduce/*,
        $HADOOP_COMMON_HOME/share/hadoop/mapreduce/lib/*,
        $HADOOP_COMMON_HOME/share/hadoop/yarn/*,
        $HADOOP_COMMON_HOME/share/hadoop/yarn/lib/*
    </value>
</property>
<!-- nodeMananger资源限定 start -->

配置完分发文件

#配置yarn-site.xml中的内容

#分发配置到多个集群节点中

scp_all.sh /usr/local/hadoop/etc/hadoop/yarn-site.xml /usr/local/hadoop/etc/hadoop/

#重启整个yarn集群

stop-yarn.sh

start-yarn.sh 

 3.hadoop集群整体启动

#启动

start-all.sh

#停止

stop-all.sh

至此hadoop集群已经搭建完成

4.4运行mapreduce样例

1.mapreduce配置

对mapred-site.xml新增配置

<!--运行模式 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description>运行模式</description>
</property>
<!--运行模式 -->
<!--资源限定 -->
<property>
    <name>yarn.app.mapreduce.am.resource.mb</name>
    <value>1024</value>
    <description>MR ApplicationMaster yarn申请的内存量</description>
</property>
<property>
    <name>yarn.app.mapreduce.am.command-opts</name>
    <value>-Xmx768m</value>
    <description>jvm使用内存</description>
</property>
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>1024</value>
    <description>每个Map Task yarn申请内存</description>
</property>

<property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>1024</value>
    <description>每个Reduce Task yarn申请内存</description>
</property>

<property>
    <name>yarn.app.mapreduce.am.resource.cpu-vcores</name>
    <value>1</value>
    <description>MR ApplicationMaster占用的虚拟CPU个数,此参数对应yarn.nodemanager.resource.cpu-vcores,建议最大为一个物理CPU的数量</description>
</property>
<property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx768m</value>
    <description>reduce jvm实际内存</description>
</property>

<property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx768m</value>
    <description>map jvm实际内存</description>
</property>

<property>
    <name>mapreduce.map.cpu.vcores</name>
    <value>1</value>
    <description>每个map Task需要的虚拟cpu数</description>
</property>

<property>
    <name>mapreduce.reduce.cpu.vcores</name>
    <value>1</value>
    <description>每个Reduce Task需要的虚拟cpu数</description>
</property>
<property>
    <name>mapreduce.application.classpath</name>
  <value>/usr/local/hadoop/etc/hadoop,/usr/local/hadoop/share/hadoop/common/*,/usr/local/hadoop/share/hadoop/common/lib/*,/usr/local/hadoop/share/hadoop/hdfs/*,/usr/local/hadoop/share/hadoop/hdfs/lib/*,/usr/local/hadoop/share/hadoop/mapreduce/*,/usr/local/hadoop/share/hadoop/mapreduce/lib/*,/usr/local/hadoop/share/hadoop/yarn/*,/usr/local/hadoop/share/hadoop/yarn/lib/*,/usr/local/hadoop/lib/*,/usr/local/hbase/lib/*</value>
    <description>运行mr程序所使用的虚拟机运行时的classpath</description>
</property>
<!--资源限定 -->

 分发配置

scp_all.sh /usr/local/hadoop/etc/hadoop/mapred-site.xml /usr/local/hadoop/etc/hadoop/

2.运行mapreduce样例

数据准备

echo "hello world" >> words.txt

echo "hello hdfs" >> words.txt

echo "hello hadoop" >> words.txt

echo "hello mapreduce" >> words.txt

echo "hdfs spark" >> words.txt

echo "hello hdfs" >> words.txt

echo "hello hadoop" >> words.txt

#上传文件到hdfs中

hadoop fs -put words.txt /

#查看文件

hadoop fs -ls /

运行mapreduce样例

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /words.txt /wcresult 

4.5资源调度器 

调度器种类

  • 先进先出调度器(FIFO)
  • 容量调度器(默认)(Capacity Scheduler)
  • 公平调度器(Fair Scheduler)

1.FIFO调度器

FIFO调度器会把接收到的任务提交到队列,调度器会根据优先级和到达先后进行排序,依次给每一个应用分配资源,直到没有资源为止。这个调度器性能太差了,一般不用

优点:

简单,直接就可以用,不需要额外的配置

缺点:

  • 小应用可能被饿死。大应用进入队列后占用了大量的资源,小应用迟迟得不到资源就卡住了
  • 低优先级的任务可能被饿死。当队列内的资源没有剩余时,如果不断有优先级高的任务进入,低优先级的任务不断被往后挤,永远得不到资源

2.容量调度器

 容量调度器就是通过划分多个队列,然后把任务调度到不同的队列执行的方式来确保小任务也能得到资源,每个队列仍是FIFO,根据划分的资源区大小,把小任务资源较小的队列,大任务提交到资源多的队列

但是这样也可能带来资源的浪费,所以可以配置弹性资源,capacity策略允许队列在空闲时将资源提供给其他队列使用,以此提高资源利用率

容量调度器的本质是通过划分队列隔离资源的方式确保任务的正常运行

容量调度器配置

配置capacity-scheduler.xml

<!--配置root队列下两个子队列 wei占比80 default占比20-->

  <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>wei,default</value>
  </property>

  <property>
    <name>yarn.scheduler.capacity.root.wei.capacity</name>
    <value>80</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.default.capacity</name>
    <value>20</value>
  </property>
 <property>
    <name>yarn.scheduler.capacity.root.wei.maximum-capacity</name>
    <value>100</value>
</property>
<property>
    <name>yarn.scheduler.capacity.root.default.maximum-capacity</name>
    <value>100</value>
</property>

分发配置

scp_all.sh /usr/local/hadoop/etc/hadoop/capacity-scheduler.xml /usr/local/hadoop/etc/hadoop/

#重启yarn

stop-yarn.sh

start-yarn.sh 

配置前后对比

提交任务到default队列

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount -Dmapreduce.job.queuename=default /words.txt /wcresult1

配置队列中任务优先级

修改yarn-site.xml 开启优先级

<property>
    <name>yarn.cluster.max-application-priority</name>
    <value>5</value>
</property>

分发文件并重启

scp_all.sh /usr/local/hadoop/etc/hadoop/yarn-site.xml /usr/local/hadoop/etc/hadoop/

#重启yarn

stop-yarn.sh

start-yarn.sh

提交任务运行时,发现优先级越高的任务会越早分配资源。

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar pi -Dmapreduce.job.queuename=hainiu -Dmapreduce.job.priority=5 5 2000000 

3.公平调度器

容量调度器是划分多个队列,单个队列采用FIFO策略,就是先执行优先级高的任务,如果优先级相同就先执行进入队列的任务,等到高优先级和先进入队列的任务执行完成后才会执行剩下的任务;与容量调度器不同,公平调度器是在单个队列中同时并行执行所有的任务,如果没有权重的话,资源会平均分配给每个任务,如果有权重的话,任务的资源分配情况按照权重来划分

公平调度器的配置

yarn-site.xml中增加如下配置

<!-- scheduler begin -->
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
        <description>调度器实现类</description>
    </property>

    <property>
        <name>yarn.scheduler.fair.allocation.file</name>
        <value>fair-scheduler.xml</value>
        <description>自定义XML配置文件所在位置,该文件主要用于描述各个队列的属性,比如资源量、权重等</description>
    </property>

    <property>
        <name>yarn.scheduler.fair.preemption</name>
        <value>true</value>
        <description>是否支持抢占</description>
    </property>

    <property>
        <name>yarn.scheduler.fair.sizebasedweight</name>
        <value>false</value>
        <description>在一个队列内部分配资源时,默认情况下,采用公平轮询的方法将资源分配各各个应用程序,而该参数则提供了外一种资源分配方式:按照应用程序资源需求数目分配资源,即需求资源数量越多,分配的资源越多。默认情况下,该参数值为false</description>
    </property>

    <property>
        <name>yarn.scheduler.increment-allocation-mb</name>
        <value>256</value>
        <description>内存规整化单位,默认是1024,这意味着,如果一个Container请求资源是700mB,则将被调度器规整化为 (700mB / 256mb) *  256mb=768mb</description>
    </property>

    <property>
        <name>yarn.scheduler.assignmultiple</name>
        <value>true</value>
        <description>是否启动批量分配功能。当一个节点出现大量资源时,可以一次分配完成,也可以多次分配完成。默认情况下,参数值为false</description>
    </property>

    <property>
        <name>yarn.scheduler.fair.max.assign</name>
        <value>10</value>
        <description>如果开启批量分配功能,可指定一次分配的container数目。默认情况下,该参数值为-1,表示不限制</description>
    </property>

    <property>
        <name>yarn.scheduler.fair.allow-undeclared-pools</name>
        <value>false</value>
        <description>如果提交的队列名不存在,Scheduler会自动创建一个该队列,默认开启</description>
    </property>
    <!-- scheduler end -->

增加fair-scheduler.xml

<?xml version="1.0"?>
<allocations>   
    <queue name="hainiu">
        <minResources>512 mb,1 vcores</minResources>
        <maxResources>6140 mb,3 vcores</maxResources>
        <maxRunningApps>50</maxRunningApps>
        <weight>2.0</weight>
        <schedulingPolicy>fair</schedulingPolicy>
        <!--可向队列中提交应用程序的用户或用户组列表,默认情况下为“*”,表示任何用户均可以向该队列提交应用程序。-->
        <aclSubmitApps>hainiu</aclSubmitApps>
        <!--一个队列的管理员可管理该队列中的资源和应用程序,比如可杀死任意应用程序-->
        <aclAdministerApps>hainiu</aclAdministerApps>
    </queue>

    <queue name="default">
        <weight>1.0</weight>
        <aclSubmitApps>*</aclSubmitApps>
        <aclAdministerApps>*</aclAdministerApps>
    </queue>

    <!-- user节点只有一个子节点 -->
    <user name="root">
            <aclSubmitApps>*</aclSubmitApps>
            <aclAdministerApps>*</aclAdministerApps>
    <maxRunningApps>10</maxRunningApps>
    </user>
    <!-- 用户的maxRunningJobs属性的默认值 -->
    <userMaxAppsDefault>50</userMaxAppsDefault>
    <!-- 队列的schedulingMode属性的默认值 默认是fair-->
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
    <!--  如果一个队列在该段时间内使用的资源量低于fair共享资源量,则开始抢占其他队列的资源。-->
    <fairSharePreemptionTimeout>60</fairSharePreemptionTimeout>
    <!--  如果一个队列在该段时间内使用的资源量低于最小共享资源量,则开始抢占其他队列的资源。 -->
    <defaultMinSharePreemptionTimeout>60</defaultMinSharePreemptionTimeout>

    <queuePlacementPolicy>
        <rule name="specified" create="false" />
        <rule name="user" create="false" />
        <rule name="reject" />
    </queuePlacementPolicy>
</allocations>

分发文件重启yarn

#关闭yarn

stop-yarn.sh

#分发文件

scp_all.sh /usr/local/hadoop/etc/hadoop/fair-scheduler.xml /usr/local/hadoop/etc/hadoop/ scp_all.sh /usr/local/hadoop/etc/hadoop/yarn-site.xml /usr/local/hadoop/etc/hadoop/

#重启yarn

start-yarn.sh

提交任务到yarn

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /words.txt /wcresult2 

将任务提交到指定队列 

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount -Dmapreduce.job.queuename=wei /words.txt /wcresult3

 4.6yarn常用命令

#集群列表查看

yarn node -list -all

#队列情况

yarn queue -status <queue>

#列出所有Application

yarn application -list

#参数过滤 -appStates [ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED]

#杀死进程

yarn application -kill

#查看日志

yarn logs -applicationId

#查看container列表

yarn container -list <Applicationname AttemptId>

本文参考:http://hainiubl.com/topics/75964 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PowerDNS架构解析与安装部署指南

1、背景介绍 目前公司使用PowerDNS进行DNS管理&#xff0c;但由于采用的是单节点架构&#xff0c;存在不可用的风险。为提升系统的稳定性和可靠性&#xff0c;我们计划对现有架构进行重构。通过引入高可用性设计&#xff0c;我们将优化系统架构&#xff0c;使其能够在故障情况…

设计模式 之 —— 抽象工厂模式

目录 什么是抽象工厂模式&#xff1f; 定义 特点 抽象工厂模式&#xff08;java代码示例&#xff09; 首先定义第一个接口 实现第一个接口的类 定义第二个接口 实现第二个接口的类 * 创建抽象工厂类 创建扩展了 AbstractFactory 的工厂类 饮料工厂 食物工厂 * 创建一个…

非科班出身的你,如何转行web安全工程师?零基础入门到精通,收藏这一篇就够了

想从其他行业转行到算法工程师的人&#xff0c;无外乎以下几个原因&#xff1a; 现在工资太低 工作没有前景 对现在的工作没有热情 对web安全工程师很感兴趣 那么&#xff0c;转行web安全工程师&#xff0c;你需要掌握哪些技能呢&#xff1f; ​ 为了帮助大家更好的学习网络…

第100+18步 ChatGPT学习:R实现SVM分类

基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言&#xff0c;不想学Python咯。 答曰&#xff1a;可&#xff01;用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了&#xff0c;就帮各位搬运一下吧。 二、R代码实现SVM分类 &#xff08;1&a…

Docker部署nacos...用户名密码错误

前提 镜像选择v2.3.0版本&#xff0c;因为最新的没拉下来用的别的地方save load的镜像。 官方示例 官方文档 数据库脚本&#xff0c;直接去数据库新建数据库nacos吧&#xff0c;执行脚本&#xff0c;执行完成后&#xff0c;发现只有建表语句&#xff0c;查询得知&#xff0c…

springboot+Activiti7整合实践 (九) 网关

系列文章目录 第一章 springbootActiviti7整合实践 (一) 第二章 springbootActiviti7整合实践 (二) 模型定义 第三章 springbootActiviti7整合实践 (三) 流程定义 第四章 springbootActiviti7整合实践 (四) 分配规则 第五章 springbootActiviti7整合实践 (五) 发布流程 第…

股票预测模型中注意力多层Attention RNN LSTM 的应用

全文链接&#xff1a;https://tecdat.cn/?p37152 原文出处&#xff1a;拓端数据部落公众号 Attention 机制是一种在神经网络处理序列数据时极为关键的技术&#xff0c;它赋予了模型“聚焦”能力&#xff0c;能够自动评估输入序列中各部分的重要性。通过为序列中的每个元素分…

一文读懂CST电磁仿软件的TLM算法原理和历史背景

这期我们免公式地介绍一下TLM原理。TLM&#xff08;Transmission Line Method&#xff09;是传输线矩阵算法&#xff0c;基于Huygens的波传播模型的三维全波电磁算法&#xff0c;注意是full wave哦&#xff01; 什么是Huygens原理&#xff1f; 惠更斯原理能准确计算波的传播。…

三大旗舰实力,奇瑞风云T10全球上市,售价18.99万元起

旗舰之上&#xff0c;10力超群&#xff01;7月25日&#xff0c;超长续航旗舰电混SUV——风云T10于弥勒全球上市。基于全球标准及全球验证体系打造的风云T10&#xff0c;凭借旗舰级的性能、安全、空间三大产品价值&#xff0c;树立了新能源时代的新标杆。新车共推出3款车型&…

目标检测 YOLOv5-7.0 详细调试自制数据集实战

目标检测 YOLOv5-7.0 详细调试&自制数据集实战 一、项目介绍及环境配置&#xff08;一&#xff09;项目解读&#xff08;二&#xff09;版本选择&#xff08;三&#xff09;环境配置 二、如何利用YOLOv5进行预测&#xff08;detect.py&#xff09;&#xff08;一&#xff0…

DOS攻击实验

实验背景 Dos 攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段&#xff0c;残忍地耗尽被攻击对象的资源&#xff0c;目的是让目标计算机或网络无法提供正常的服务或资源访问&#xff0c;使目标系统服务系统停止响应甚至崩溃。 实验设备 一个网络 net:cloud0 一台模…

如何在go里使用jwt(包含示例)

什么是JWT JWT就是一种基于Token的轻量级认证模式&#xff0c;服务端认证通过后&#xff0c;会生成一个JSON对象&#xff0c;经过签名后得到一个Token&#xff08;令牌&#xff09;再发回给用户&#xff0c;用户后续请求只需要带上这个Token&#xff0c;服务端解密之后就能获取…

关于安装yarn后pnpm无法使用的问题

踩坑经过 因为公司项目变更需要&#xff0c;需要切换到yarn包管理工具&#xff0c;师父帮我调整了node版本&#xff0c;然后全局安装了yarn&#xff1a;npm install -g yarn 然后在项目里面用了yarn install然后用yarn dev语句跑起来了新项目。但是现在老项目有bug&#xff0c…

基于JSP、java、Tomcat三者的项目实战--校园交易网(2)登录,注册功能实现

技术支持&#xff1a;JAVA、JSP 服务器&#xff1a;TOMCAT 7.0.86 编程软件&#xff1a;IntelliJ IDEA 2021.1.3 x64 OK&#xff0c;那我们进入正题&#xff0c;随着前面一篇博客的尚未完结基于JSP、java、Tomcat三者的项目实战--校园交易网&#xff08;2&#xff09;登录功能…

2024杭电多校(4)1012. 寻找宝藏 【扫描线、树状数组二维偏序】

寻找宝藏 题意 思路 如果没有矩形陷阱区域的话&#xff0c;设 f i f_i fi​ 表示从 ( 0 , 0 ) (0, 0) (0,0) 到 ( i , p i ) (i, p_i) (i,pi​) 的最大收益&#xff0c;那么可以很容易通过扫描线 d p dp dp 求出&#xff1a; f i v i max ⁡ j < i ∧ p j < p …

颜色识别基于高斯混合模型(GMM)的查找表分类器(LUT)

文章目录 create_class_gmm 创建高斯混合模型&#xff08;GMM&#xff09;以进行分类任务add_samples_image_class_gmm 提取训练样本&#xff0c;并将其添加到高斯混合模型 (GMM) 的训练数据集中train_class_gmm 训练一个高斯混合模型 (GMM)clear_class_gmm 清除模型create_cla…

车载客流统计大揭秘——双目客流统计

客流统计大揭秘——双目客流统计 随着科技的飞速发展和商业竞争的加剧&#xff0c;客流统计已成为商业运营中不可或缺的一环。在众多客流统计技术中&#xff0c;双目客流统计以其高精度和高效率逐渐受到广大商家的青睐。本文将带您一探双目客流统计的奥秘。 一、什么是双目客流…

axure10的安装与使用教程,问题整理

前言&#xff1a; axure10的安装与激活使用教程。 1、百度网盘下载相关资料 链接&#xff1a;https://pan.baidu.com/s/1OSD9J1wVuIptGxeRzwjlpA?pwddkbj 提取码&#xff1a;dkbj 2、开始安装&#xff0c;点击setup的安装包 除了更改地址外&#xff0c;其他的默认就行&…

平台总线驱动和设备的匹配流程分析

参考文章:https://blog.csdn.net/qq_44182115/article/details/123231576 1、宏module_platform_driver // include/linux/platform_device.h 展开为 static int __init __platform_driver_init(void) \ {\return platform_driver_register(&

谷粒商城实战笔记-84-商品服务-API-新增商品-获取分类关联的品牌

文章目录 一&#xff0c;品牌查询接口的后台实现二&#xff0c;编码经验总结1&#xff0c;Controller层的作用1.1 参数处理1.2 调用Service1.3 处理Service返回结果实例 2&#xff0c;VO的封装时机3&#xff0c;Service中最好注入Service&#xff0c;不要直接依赖Dao 问题记录 …