Hadoop-yarn学习

一、常用命令

1.yarn application -list列出所有Application

2.yarn application -list -appStates 状态(ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED)根据Application状态过滤

3.yarn application -kill 进程ID杀死某个进程

4.yarn logs -applicationId 进程id查看进程日志

5.yarn logs -applicationId 进程id -containerId 容器id查看容器id

6.yarn applicationattempt -list 进程id列出所有Application尝试的列表

7.yarn applicationattempt -status 进程id打印ApplicationAttemp状态

8.yarn container -list 进程id列出所有Container

9.yarn container -status 容器id打印Container状态

10.yarn node -list -all列出所有节点

11.yarn rmadmin -refreshQueues加载队列配置

12.yarn queue -status 队列名称打印队列信息

二、队列相关命令

1.配置多队列的容量调度器

(1)在capacity-scheduler.xml中配置如下:
修改配置:



yarn.scheduler.capacity.root.queues
default,hive

The queues at the this level (root is the root queue).



yarn.scheduler.capacity.root.default.capacity
40



yarn.scheduler.capacity.root.default.maximum-capacity
60

为新加队列添加必要属性:



yarn.scheduler.capacity.root.hive.capacity
60



yarn.scheduler.capacity.root.hive.user-limit-factor
1



yarn.scheduler.capacity.root.hive.maximum-capacity
80



yarn.scheduler.capacity.root.hive.state
RUNNING



yarn.scheduler.capacity.root.hive.acl_submit_applications
*



yarn.scheduler.capacity.root.hive.acl_administer_queue
*



yarn.scheduler.capacity.root.hive.acl_application_max_priority
*



yarn.scheduler.capacity.root.hive.maximum-application-lifetime
-1



yarn.scheduler.capacity.root.hive.default-application-lifetime
-1

(2)分发配置文件
(3)重启Yarn或者执行yarn rmadmin -refreshQueues刷新队列

2.向hive队列提交任务hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar wordcount -D mapreduce.job.queuename=hive /input /output,其中-D表示运行时改变参数值

3.任务优先级

(1)修改yarn-site.xml文件,增加以下参数(其中value值随便自己设):


yarn.cluster.max-application-priority
5

(2)分发配置,并重启yarn
(3)设置任务优先级hadoop jar /opt/module/hadoop-3.2.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar pi -D mapreduce.job.priority=5 5 2000000
(4)修改正在执行的任务的优先级yarn application -appID 进程id -updatePriority 优先级

4.配置多队列的公平调度器

(1)修改yarn-site.xml文件,加入以下参数:


yarn.resourcemanager.scheduler.class
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
配置使用公平调度器


yarn.scheduler.fair.allocation.file
/opt/module/hadoop-3.2.4/etc/hadoop/fair-scheduler.xml
指明公平调度器队列分配配置文件


yarn.scheduler.fair.preemption
false
禁止队列间资源抢占

(2)配置fair-scheduler.xml:




0.5

4096mb,4vcores




2048mb,2vcores

4096mb,4vcores

4

0.5

1.0

fair




2048mb,2vcores

4096mb,4vcores

4

0.5

1.0

fair












(3)分发配置并重启Yarn

4.测试提交任务

(1)任务指定到root.test队列hadoop jar /opt/module/hadoop-3.2.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar pi -Dmapreduce.job.queuename=root.test 1 1
(2)不指定队列则按照配置规则选队列hadoop jar /opt/module/hadoop-3.2.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar pi 1 1

5.创建tool接口后,可以使用yarn jar Yarn.jar com.lzp.yarn.WordCountDriver wordcount -Dmapreduce.job.queuename=root.test /input2 /output执行程序

三、总结

1.Yarn的工作机制(面试题)

2.Yarn的调度器

(1)FIFO/容量/公平
(2)apache默认调度器:容量;CDH默认调度器:公平
(3)公平/容量默认一个default,需要创建多队列
(5)中大企业:业务模块:登录/注册/购物车/营销
(6)好处:解耦 降低风险 11.11 6.18 降级使用
(7)每个调度器特点:
  相同点:支持多队列,可以借资源,支持多用户
  不同点:容量调度器:优先满足先进来的任务先执行
      公平调度器:在队列里面的任务公平享有队列资源
(8)生产环境怎么选:
  中小企业:对并发度要求不高,选择容量
  中大企业:对并发度要求比较高,选择公平

3.并发需要重点掌握:

(1)队列运行原理
(2)Yarn常用命令
(3)核心参数配置
(4)配置容量调度器和公平调度器
(5)tool接口使用

posted on 2022-09-01 00:03  L先森请坐下  阅读(299)  评论(0)    收藏  举报

导航