概述
Yarn的多租户配置实现资源隔离
-
资源隔离介绍:资源隔离目前有2种,静态隔离和动态隔离。
- 静态隔离
所谓静态隔离是以服务隔离,是通过cgroups(LINUX control groups) 功能来支持的。
-
动态隔离
动态隔离只要是针对 YARN以及impala, 所谓动态只是相对静态来说,其实也不是动态。
-
第一步:hadoop102配置yarn-site.xml
<!-- 指定我们的任务调度使用fairScheduler的调度方式 --> <property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value> </property> <!-- 指定我们的任务调度的配置文件路径 --> <property> <name>yarn.scheduler.fair.allocation.file</name> <value>/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/fair-scheduler.xml</value> </property> <!-- 是否启用资源抢占,如果启用,那么当该队列资源使用 yarn.scheduler.fair.preemption.cluster-utilization-threshold 这么多比例的时候,就从其他空闲队列抢占资源 --> <property> <name>yarn.scheduler.fair.preemption</name> <value>true</value> </property> <property> <name>yarn.scheduler.fair.preemption.cluster-utilization-threshold</name> <value>0.8f</value> </property> <!-- 默认提交到default队列 --> <property> <name>yarn.scheduler.fair.user-as-default-queue</name> <value>true</value> <description>default is True</description> </property> <!-- 如果提交一个任务没有到任何的队列,是否允许创建一个新的队列,设置false不允许 --> <property> <name>yarn.scheduler.fair.allow-undeclared-pools</name> <value>false</value> <description>default is True</description> </property>
-
第二步:hadoop102添加fair-scheduler.xml配置文件
<?xml version="1.0"?> <allocations> <!-- users max running apps --> <userMaxAppsDefault>30</userMaxAppsDefault> <!-- 定义我们的队列 --> <queue name="root"> <minResources>512mb,4vcores</minResources> <maxResources>102400mb,100vcores</maxResources> <maxRunningApps>100</maxRunningApps> <weight>1.0</weight> <schedulingMode>fair</schedulingMode> <aclSubmitApps> </aclSubmitApps> <aclAdministerApps> </aclAdministerApps> <queue name="default"> <minResources>512mb,4vcores</minResources> <maxResources>30720mb,30vcores</maxResources> <maxRunningApps>100</maxRunningApps> <schedulingMode>fair</schedulingMode> <weight>1.0</weight> <!-- 所有的任务如果不指定任务队列,都提交到default队列里面来 --> <aclSubmitApps>*</aclSubmitApps> </queue> <!-- weight 资源池权重 aclSubmitApps 允许提交任务的用户名和组; 格式为: 用户名 用户组 当有多个用户时候,格式为:用户名1,用户名2 用户名1所属组,用户名2所属组 aclAdministerApps 允许管理任务的用户名和组; 格式同上。 --> <queue name="hadoop"> <minResources>512mb,4vcores</minResources> <maxResources>20480mb,20vcores</maxResources> <maxRunningApps>100</maxRunningApps> <schedulingMode>fair</schedulingMode> <weight>2.0</weight> <aclSubmitApps>hadoop hadoop</aclSubmitApps> <aclAdministerApps>hadoop hadoop</aclAdministerApps> </queue> <queue name="develop"> <minResources>512mb,4vcores</minResources> <maxResources>20480mb,20vcores</maxResources> <maxRunningApps>100</maxRunningApps> <schedulingMode>fair</schedulingMode> <weight>1</weight> <aclSubmitApps>develop develop</aclSubmitApps> <aclAdministerApps>develop develop</aclAdministerApps> </queue> <queue name="test1"> <minResources>512mb,4vcores</minResources> <maxResources>20480mb,20vcores</maxResources> <maxRunningApps>100</maxRunningApps> <schedulingMode>fair</schedulingMode> <weight>1.5</weight> <aclSubmitApps>test1,hadoop,develop test1</aclSubmitApps> <aclAdministerApps>test1 group_businessC,supergroup</aclAdministerApps> </queue> </queue> </allocations>
-
第三步:将修改后的配置文件分发下去
将node01修改后的yarn-site.xml和fair-scheduler.xml配置文件分发到其他服务器上面去 scp yarn-site.xml fair-scheduler.xml node02:$PWD
-
第四步:重启yarn集群
sbin/start-yarn.sh
-
第五步:创建普通用户以及修改hdfs上的tmp文件夹权限
hadoop102创建普通用户hadoop,用于测试我们使用hadoop用户提交任务到hadoop队列当中去 useradd hadoop passwd hadoop hadoop102执行以下命令,修改hdfs上面tmp文件夹的权限,不然普通用户执行任务的时候会抛出权限不足的异常 yarn jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.0.jar pi 10 20
-
第六步:浏览器查看任务调度
http://hadoop1021:8088/cluster/scheduler
最后
以上就是愤怒眼神为你收集整理的Yarn的多租户配置实现资源隔离的全部内容,希望文章能够帮你解决Yarn的多租户配置实现资源隔离所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复