---
title: 启动前准备
description: "使用Yarn包管理器启动前，需首先进行Hadoop相关配置，配置完成后重新启动Hadoop。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC5/bds/kunpengbds_omniruntime_20_0244.html
sourcePath: /source/zh/kunpengboostkithistory/240RC5/bds/kunpengbds_omniruntime_20_0244.html
indexId: 1fee3157570122549d57c594106080c7ecd0931dfd147cb9544283f5d63a2cfc80
---
# 启动前准备

使用Yarn包管理器启动前，需首先进行Hadoop相关配置，配置完成后重新启动Hadoop。

- 普通模式启动和Yarn启动选择其一。
- 使用Yarn包管理器启动时，如Hadoop版本为3.2.2及以上版本，则需重新编译container-executor，否则将无法启动Hadoop。详细内容请参考  Yarn启动Hadoop失败的解决方法(https://www.hikunpeng.com/document/detail/zh/omniruntime/omnishuffle/kunpengbds_omniruntime_20_0352.html)
。


1. 主节点修改Hadoop配置文件。

  a. 修改“${HADOOP_HOME}/etc/hadoop/yarn-site.xml”文件。

    1. 开启container-executor配置，用户组为ockadmin，如下所示。

```
<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>ockadmin</value>
</property>
<property>
<name>yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users</name>
<value>false</value>
</property>
```


    2. 配置开启Node Labels特性。
      图1 开启Node Labels

      yarn-site.xml文件配置示例如下：

```
<propert>
<name>yarn.node-labels.enabled</name>
<value>true</value>
</propert>
<propert>
<name>yarn.node-labels.fs-store.root-dir</name>
<value>/tmp/node-labels</value>
</propert>
<propert>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</propert>
```


    3. 重启ResourceManager组件以生效配置。

      - 执行以下命令查询节点列表，确认ResourceManager是否正在运行。

```
yarn node -list
```


      - 执行以下命令停止ResourceManager服务。

```
yarn --daemon stop resourcemanager
```


      - 待ResourceManager服务停止后，执行以下命令重启该服务。

```
yarn --daemon start resourcemanager
```


  b. 修改“${HADOOP_HOME}/etc/hadoop/core-site.xml”文件，代理的用户和用户组分别为${HADOOP_USER}、${HADOOP_GROUP}，如下所示。

```
<property>
<name>hadoop.proxyuser.sparkadmin.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.ockadmin.groups</name>
<value>*</value>
</property>
```


  c. 切换为root用户，创建并修改“/etc/hadoop/container-executor.cfg”文件，添加以下内容。

```
mkdir -p /etc/hadoop/
touch container-executor.cfg
```


    添加以下内容：

```
yarn.nodemanager.linux-container-executor.group=ockadmin #configured value of yarn.nodemanager.linux-container-executor.group
banned.users= #comma separated list of users who can not run applications
min.user.id=1000 #Prevent other super-users
allowed.system.users= #comma separated list of system users who CAN run applications
feature.tc.enabled=false
```


  d. 切换为root用户，修改“/etc/hadoop/container-executor.cfg”文件权限为755。

```
chmod 755 -R /etc/hadoop
```


  e. 在所有节点上执行以下操作。

    1. 切换为ockdadmin用户，并在该用户目录下创建.hadooprc文件，权限修改为640。

```
su - ockadmin
touch .hadooprc
chmod 640 .hadooprc
```


    2. 添加以下内容：

```
export HADOOP_USER_NAME=ockadmin
export HDFS_DATANODE_USER=ockadmin
export HDFS_NAMENODE_USER=ockadmin
export HDFS_SECONDARYNAMENODE_USER=ockadmin
export YARN_RESOURCEMANAGER_USER=ockadmin
export YARN_NODEMANAGER_USER=ockadmin
```


2. 将yarn-site.xml、core-site.xml、container-executor.cfg分发至所有节点。并在各个节点执行以下命令修改container-executor权限。

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


3. 重启Hadoop。
  执行以下命令进入Hadoop bin目录下，重启Hadoop。

```
cd
$HADOOP_HOME
/sbin
./stop-all.sh
./start-all.sh
```


  重启后执行jps命令查看ResourceManager是否启动。若未启动，可查看ResourceManager日志进行分析。若未启动原因为安全模式开启，则可执行以下命令退出安全模式并重启Hadoop服务。

```
hadoop dfsadmin -safemode leave
./start-all.sh
```
