Yarn队列租户配置教程(实践记录)

简介: Yarn队列租户配置教程(实践记录)

1. 配置


Yarn资源调度有三种策略,分别是:

微信截图_20221012142632.png


本文主要配置的是Fair Scheduler调度,即公平调度策略。


Step1. 指定调度策略


目前hadoop3.X版本默认使用的是Capacity Scheduler,因此需要指定调度策略,只要在yarn-site.xml(/opt/hadoop-2.7.7/etc/hadoop/)添加如下内容:

<!-- 指定调度策略为FairScheduler -->
<property>
  <name>yarn.resourcemanager.scheduler.class</name>
  <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<!-- Fair Scheduler 策略配置文件的位置-->
<property>
  <name>yarn.scheduler.fair.allocation.file</name>
  <value>/opt/hadoop-2.7.7/etc/hadoop/fair-scheduler.xml</value>
</property>


注意到了还需要配置Fair Scheduler的配置文件。


Step2. 配置fair-scheduler.xml


fair-scheduler.xml内容如下:

<?xml version="1.0" ?>
<allocations>
    <queue name="root">
        <minResources>2048 mb,2 vcores</minResources>
        <maxResources>12240 mb,8 vcores</maxResources>  
        <maxRunningApps>10</maxRunningApps>
        <schedulingMode>fair</schedulingMode>
        <aclSubmitApps>root</aclSubmitApps>
        <aclAdministerApps>root</aclAdministerApps>
        <queue name="spark-max">
            <minResources>1024 mb,1 vcores</minResources>
            <maxResources>6120 mb,8 vcores</maxResources>  
            <maxRunningApps>10</maxRunningApps>
            <aclSubmitApps>admin,user_max</aclSubmitApps>
            <aclAdministerApps>admin</aclAdministerApps>
            <weight>2.0</weight>
            <schedulingPolicy>fair</schedulingPolicy>
        </queue>
    <queue name="spark-mid">
            <minResources>1024 mb,1 vcores</minResources>
            <maxResources>3672 mb,4 vcores</maxResources>  
            <maxRunningApps>10</maxRunningApps>
            <aclSubmitApps>admin,user_mid</aclSubmitApps>
            <aclAdministerApps>admin</aclAdministerApps>
            <weight>1.0</weight>
            <schedulingPolicy>fair</schedulingPolicy>
        </queue>
        <queue name="spark-min">
            <minResources>1024 mb,1 vcores</minResources>
            <maxResources>2448 mb,2 vcores</maxResources>  
            <maxRunningApps>10</maxRunningApps>
            <aclSubmitApps>admin,user_min</aclSubmitApps>
            <aclAdministerApps>admin</aclAdministerApps>
            <weight>1.0</weight>
            <schedulingPolicy>fair</schedulingPolicy>
        </queue>
        <user name="admin">
            <maxRunningApps>10</maxRunningApps>
        </user>
    </queue>
    <userMaxAppsDefault>10</userMaxAppsDefault>
</allocations>


注意在Yarn的Web UI界面可以查看内存以及核数总量:

330263c5392548739bb3f87350aa1563.png


属性解析如下:

微信截图_20221012142811.png


2. 启动


重启hadoop:

$ cd /opt/hadoop-2.7.7/sbin/
$ ./stop-all.sh
$ ./start-all.sh
$ jps


如果显示如下,表示正常:

d9866e9d159f4350a6d523df1ab97bf2.png


打开WebUI,浏览器访问http://10.194.188.37:8088/,可以看到使用了公平策略,以及创建了3个队列。

af361987378444c78c395e203413a6b9.png


3. 验证


从fair-sheduler.xml文件可以看到:

9f228cd67934400f9698e32383da824a.png


也就是需要验证:


  • spark-max 能否提交到spark-max队列(期望是可以的)
  • spark-max能否提交到spark-mid队列(期望是不可以的)


Step1. 创建用户


根据fair-sheduler.xml,创建四个用户,分别为:admin、user_max、user_mid、user_min;

# 新增用户命令(例如新增admin)
$ adduser admin
# 为新增用户创建密码(例如为admin新增密码)
$ passwd admin
# 其余的用户创建依次类推


查看新增的用户:

$ compgen -u


85c2e936c4a54c63833c0074913dc4c3.png


Step2. 验证提交


验证1:user_max用户提交到root队列(预期不成功)


首先切换到user_max用户:

$ su user_max


然后使用运行spark-shell到yarn的root队列:

$ cd /opt/spark-2.4.8-bin-hadoop2.7/bin/
$ ./spark-shell --master yarn --queue root


运行结果:

66151faa51fd4e94852d411a51c10dfe.png


与预期的一致。


验证2:user_max用户提交到spark-max队列(预期成功)


执行命令:

$ ./spark-shell --master yarn --queue spark-max


运行结果:

77b7116b39434ca9a2e9bbf1fd2fd56a.png


同时在yarn的web ui也可以看到已经成功地提交到yarn了。

96050e8a60514479a80f834d20d55861.png


验证3:user_max用户提交到spark-mid队列(预期不成功)


执行命令:

$ ./spark-shell --master yarn --queue spark-mid


运行结果,与预想的一样不成功:

047fdae72c7a425ea1f031211e64b53a.png


4. 问题汇总


问题1. hadoop 无法停止?


  • 解决方案:直接使用jps命令查询出所有hadoop相关的进程,然后使用kill -9 进程号命令把yarn相关的进程杀掉。


问题2. 解决Permission denied: user=dr.who, access=READ_EXECUTE, inode=“/user/user_max”:root:supergroup:drwx ?


  • 解决方案:这是由于新增的用户对hdfs没有权限,使用命令hdfs dfs -chmod -R 777 /user


问题3. 解决faire scheduler空指针问题?



问题4. cm如何配置FairScheduler?


9d1015b8a49f48acbaf33b805c0fa5ae.png

目录
相关文章
|
5月前
|
资源调度 分布式计算 Kubernetes
Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享
Koordinator 支持 K8s 与 YARN 混部,小红书在离线混部实践分享
|
4月前
|
分布式计算 资源调度 Hadoop
Hadoop【部署 02】hadoop-3.1.3 单机版YARN(配置、启动停止shell脚本修改及服务验证)
Hadoop【部署 02】hadoop-3.1.3 单机版YARN(配置、启动停止shell脚本修改及服务验证)
46 0
|
4月前
|
SQL 资源调度 分布式计算
Yarn【多队列实例、任务优先级设置】
Yarn【多队列实例、任务优先级设置】
|
4月前
|
资源调度 分布式计算 Hadoop
Yarn【关于配置yarn-site.xml的注意事项】
Yarn【关于配置yarn-site.xml的注意事项】
|
5月前
|
资源调度 分布式计算 Hadoop
Yarn队列租户配置教程(实践记录)
Yarn队列租户配置教程(实践记录)
65 0
|
5月前
|
资源调度 分布式计算 Hadoop
MapReduuce配置&YARN集群部署
MapReduuce配置&YARN集群部署
41 0
|
6月前
|
资源调度 分布式计算 数据可视化
灵活、可用、高扩展,EasyMR 带来全新 Yarn 的队列管理功能及可视化配置
本文为大家介绍各类资源划分和队列管理方式,以及 EasyMR YARN 的队列管理功能,如何通过可视化界面管理,给广大用户带来更高效和便捷的队列管理体验。
47 0
|
6月前
|
SQL 资源调度 大数据
公共大数据集群中如何配置 YARN 的公平调度器和容量调度器
公共大数据集群中如何配置 YARN 的公平调度器和容量调度器
公共大数据集群中如何配置 YARN 的公平调度器和容量调度器
|
6月前
|
SQL 资源调度 大数据
大数据平台 CDP 中如何配置 hive 作业的 YARN 队列以确保SLA?
大数据平台 CDP 中如何配置 hive 作业的 YARN 队列以确保SLA?
|
6月前
|
SQL 资源调度 分布式计算
聊聊 yarn 的三种资源调度器和公平调度器的最佳配置实践
聊聊 yarn 的三种资源调度器和公平调度器的最佳配置实践