---
title: 启动前准备
description: "使用Yarn包管理器启动前，需首先进行Hadoop相关配置，参考官方文档配置，完成后重新启动Hadoop。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0316.html
sourcePath: /source/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0316.html
indexId: 0d3bb1428674463db48040cd7710b58d4097d6d164208a6c7e27f84c5df2549878
---
# 启动前准备

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

- 普通模式启动和Yarn启动选择其一。
- 使用Yarn包管理器启动时，如Hadoop版本为3.2.2及以上版本，则需重新编译container-executor，否则将无法启动Hadoop。详细内容请参考  Yarn启动Hadoop失败的解决方法
。
- 部署和启动Hadoop建议使用普通用户，使用root用户可能存在安全风险。
- 官方文档可参考：  Launching Applications Using runC Containers(https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/RuncContainers.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. 修改“$HADOOP_HOME/etc/hadoop/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. 在所有节点上执行以下操作。

    1. 切换为ockadmin用户，并在该用户目录下创建.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. 重启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
```
