继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Yarn Secure Container Executor配置简介

2018-06-26 14:11:346999浏览

叁金

3实战 · 33手记 · 1推荐
TA的实战

前面我们简单介绍了Hadoop资源管控简介,提到了目录的空间大小,目录文件个数,yarn任务内存等等资源的管控,如果我们想要对cpu进行控制就需要用到linux系统本身的cgroup。这时候就需要设置Yarn的Container Executor了。

1. 说明

安全模式集群中的YARN containers使用系统工具为容器提供执行隔离。保证容器在job所有者的证书认证下执行,操作系统强制对容器进行访问限制,同时容器只能用于提交application。

安全容器只能在拥有安全认证的yarn集群中使用。

YARN提供了三种ContainerExecutor,通过属性yarn.nodemanager.container-executor.class配置:

  • DefaultContainerExecutor,简称DCE。每个Container运行在单独的进程里,但进程都是由NM的用户启动的。比如NM进程是用yarn用户启动的,那么所有Container的进程也由yarn用户启动。
  • LinuxContainerExecutor,简称LCE。每个Container由不同的用户启动。比如A用户提交的job的container,都由A用户启动。此外支持cgroup、支持单独的配置文件、支持简单的ACL。
  • Windows Secure Container Executor,简称WSCE。

2. 配置

这里只介绍LinuxContainerExecutor的配置。

编辑配置文件yarn-site.xml,添加LinuxContainerExecutor

<property>
  <name>yarn.nodemanager.container-executor.class</name>
  <value>org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor</value>
</property>

<property>
  <name>yarn.nodemanager.linux-container-executor.group</name>
  <value>hadoop</value>
</property>
<!--此处的group为nodemanager用户所属组-->

编辑container-executor.cfg 添加如下内容:

#configured value of yarn.nodemanager.linux-container-executor.group
yarn.nodemanager.linux-container-executor.group=hadoop
#comma separated list of users who can not run applications
banned.users=azkaban
#comma separated list of allowed system users
allowed.system.users=root
#Prevent other super-users
min.user.id=1000

: container-executor.cfg配置文件有很多坑,例如每一个配置项末尾都不能有空格,文件不能以CRLF 换行,banned.users=不能为空等,编辑时需注意。

修改bin/container-executor权限

container-executor的owner必须是root,而且必须与nodemanager用户同组

$chown root:hadoop container-executor

$chmod 6050 container-executor

测试 container-executor

[root@datanode-2 bin]# ./container-executor
Usage: container-executor --checksetup
Usage: container-executor --mount-cgroups hierarchy controller=path...
Usage: container-executor user yarn-user command command-args
Commands:
   initialize container:  0 appid tokens nm-local-dirs nm-log-dirs cmd app...
   launch container:     1 appid containerid workdir container-script tokens pidfile nm-local-dirs nm-log-dirs resources
   signal container:     2 container-pid signal
   delete as user:  3 relative-path

重启nodemanager

3. 注意事项

container-executor和container-executor.cfg 及其所有父目录的owner都必须是root.

4. 参考链接

http://hadoop.apache.org/docs/r2.7.6/hadoop-yarn/hadoop-yarn-site/SecureContainer.html

http://secfree.github.io/blog/2015/06/25/yarn-container-executor-traps.html

http://jxy.me/2015/05/15/yarn-container-executor/

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP