Hadoop Yarn Linux Container Executor配置
2017-07-04 11:31
141 查看
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,如果没有错误信息,基本上问题就解决了。
相关文章推荐
- Hadoop 笔记
- Hadoop相关的考题
- Hadoop 在百度的应用
- Hadoop家族学习路线图
- hadoop源码解析1 - hadoop中各工程包依赖关系
- 鼓捣了好几天hadoop2.2集群(关于节点删除+ssh免密码登陆)
- Hadoop之一 初识Hadoop
- 基于Hadoop生态圈的数据仓库实践 —— 进阶技术(十四)
- 测试hadoop安装是否成功
- hadoop运行WordCount.jar
- hadoop重新格式化HDFS步骤解析
- 学习hadoop大数据基础框架需要什么基础
- hadoop的常见异常
- 为什么Hadoop集群中机器台数多反而执行速度慢?
- 借助hadoop streaming,使用C++编写MapReduce程序
- [大牛翻译系列]Hadoop系列性能部分完结
- hadoop hive 操作整理
- hadoop入门教程列表
- Hadoop集群优化-关闭THP