1. 配置动态资源池目的
2. 操作步骤
2.1 开启 HDFS 权限检查(默认是开启的)
2.2 给集群创建新用户, 以 bi_dev 为例。
// 创建用户组
# groupadd bi_dev
// 创建用户
# useradd -s /bin/sh -g bi_dev -d /usr/bi_dev -m bi_dev
// 设置密码
# passwd bi_dev
// hdfs 创建用户目录
# sudo -u hdfs hdfs dfs -mkdir /user/bi_dev
// 修改用户权限
# sudo -u hdfs hdfs dfs -chown bi_dev:bi_dev /user/bi_dev
3. 运行MapReduce程序 WordCount
# echo "Hello World, hello Belle." > file0
# echo "Hello Wille, hello BB." > file1
# hdfs dfs -mkdir -p /user/bi_dev/wordcount/input
# hdfs dfs -put file* /user/bi_dev/wordcount/input
# hadoop jar /usr/local/cloudera/parcels/CDH/jars/hadoop-examples.jar wordcount wordcount/input wordcount/output
# hdfs dfs -getmerge wordcount/output output.txt
# cat output.txt
Belle. 1
hello 2
BB. 1
Wille, 1
Hello 2
World, 1
4. 开启资源管理器 ACL , 并设置相应的ACL(Admin ACL)
- 选中启动REsourceManager ACL
- 设置管理ACL用户和用户组
其中yarn.acl.enable默认值为true。而对于yarn.admin.acl默认值为*,意味着所有人都可以管理Resource Manager (比如运行yarn rmadmin)、管理已提交 (比如取消 kill) 的任务。
格式:用户1,用户2,用户3 用户组1,用户组2,用户组3
PS:用户和用户组之间必须有个空格,
5. 关闭未声明资源池的自动生成
- 默认情况下,"Allow Undeclared Pools"可选项是选中的,需要关闭。否则如果用户指定一个尚未声明的资源池时,比如prod,YARN将会自动生成一个prod资源池。配置文件修改后需要重新启动YARN服务,重新部署客户端配置。
6. 配置“若用户提交任务不指定特定的queue,就使用 default 资源池”
7. 进去动态资源池配置页面
7.1 资源池( 资源分配界面)。
主要配置项:
权重(%):动态权重,资源不是静态的,去其他池相关的资源共享
最大最小CPU、内存
正在运行的应用程序最大数量
计划策略
创建资源池
7.2 配置计划策略(对单独资源池控制)
7.3 提交访问控制(对单独资源池控制)
7.4 管理访问控制 (对单独资源池控制)
7.5 验证访问控制
新建
用户: yan.jy
用户组:wms
初始化wordCount数据,见步骤3
在执行 hadoop 命令内加入资源池控制,如下图
8. 计划模式(资源池配置集)
可以根据不同时段使用不同的资源池配置。
配置了计划模式,资源池会有多套配置,如下图:
计划规则主要控制配置有效时间段,创建计划规则如下图:
9. 放置规则
主要作用:控制任务(Job、Task)使用资源池规则,即任务会根据以下规则放到对应资源池执行。
10. 用户限制
主要作用:控制单个用户最大应用程序并发度。