Hadoop Yarn Linux Container Executor配置

Yarn Linux Container Executor配置

概述:

Yarn支持两种容器实现方式,一种是yarn容器,一种是Linux容器,Linux容器较比Yarn容器具有更好的扩展性和隔离性。本文将讲述Linux容器的配置。

需要配置的文件有三:


$HADOOP_HOME/etc/hadoop/yarn-site.xml  
$HADOOP_HOME/etc/hadoop/container-executor.cfg  
$HADOOP_HOME/bin/container-executor  

yarn-site.xml

为了运行Linux Container需要增加以下配置:

<property>
  <name>yarn.nodemanager.container-executor.class</name>
  <value>org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor</value>
  <description>
    This is the container executor setting that ensures that all applications
    are started with the LinuxContainerExecutor.
  </description>
</property>

<property>
  <name>yarn.nodemanager.linux-container-executor.group</name>
  <value>hadoop</value>
  <description>
    The POSIX group of the NodeManager. It should match the setting in
    "container-executor.cfg". This configuration is required for validating
    the secure access of the container-executor binary.
  </description>
</property>

<property>
  <name>yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users</name>
  <value>false</value>
  <description>
    Whether all applications should be run as the NodeManager process' owner.
    When false, applications are launched instead as the application owner.
  </description>
</property>

分别设置容器类为LinuxContainerExecutor;允许使用的用户组为:hadoop;第三个为可选项,配置是否限制NodeManager用户作为应用用户。

container-executor.cfg

container-executor.cfg是启动container需要使用的配置属性。

需要保证有如下内容:

yarn.nodemanager.linux-container-executor.group=hadoop
yarn.nodemanager.local-dirs=$HADOOP_HOME/yarn/local  
yarn.nodemanager.log-dirs=$HADOOP_HOME/yarn/log 
banned.users=hdfs,yarn,mapred,bin 
min.user.id=1000

分别是确保容器运行组是hadoop;设置local和log路径,禁用用户;禁用其他系统用户。

相应的需要创建这两个目录:

mkdir -p $HADOOP_HOME/yarn/local
mkdir -p $HADOOP_HOME/yarn/log

修改后需要修改container-executor.cfg权限:

chown root:hadoop $HADOOP_HOME/etc/hadoop/container-executor.cfg

container-executor.cfg所有者必须是root:hadoop,如果没有这一用户或用户组,需要创建。

container-executor

container-executor是在$HADOOP_HOME/bin下的可执行文件,是运行Linux Container的最终执行入口。需修改其权限:

chown root:hadoop $HADOOP_HOME/bin/container-executor 
chmod 6050 $HADOOP_HOME/bin/container-executor

有一种说法是container executor需要重新编译,如果配置完成发现yarn不能正常启动(最常见的是NodeManager没启动),可以尝试重新编译。

推荐的做法是,找到Hadoop源代码,在$HADOOP_SRC/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager路径下,有一个pom.xml文件和src目录,直接使用maven编译,执行以下命令:

mvn package -Pdist,native -DskipTests -Dtar -Dcontainer-executor.conf.dir=$HADOOP_HOME/etc/hadoop

在编译好的target/native/usr/local/路径下可以找到编译好的container-executor,替换即可。

替换之后可以执行$HADOOP_HOME/bin/container-executor -checksetup,如果没有错误信息,基本上问题就解决了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值