发布于:,更新于:

hadoop安装竞赛文档

Hadoop安装教程

仅供厦门南洋学院的同学参考使用,基于厦门南洋学院实训楼413的环境进行配置,无法保证能够应用到其他场景。

  • 编纂时间:2023.10.11
  • 编纂作者:夏五郎

Linux入门教程

在linux下安装hadoop必须要会的几个基本操作:

  • cd 目录 # 切换目录的命令 使用 cd 命令可以切换目录,比如 cd $MP 就是打开$MP 目录。 其中在目录前添加 ./module或不加任何标记 module 表示当前目录,添加 ../module 表示上级目录 ,/module 表示从根目录 / 开始的绝对路径目录。

  • vi 文件目录 # 在命令行中使用编辑器的命令 使用 vi 命令可以在shell中编辑文件,比如 vi /etc/hosts 就是编辑/etc/hosts文件。 文件目录的标注方法和cd同样,不存在的文件会直接新建,请注意! 使用方向键移动光标,点击 i 键,最下方显示 INSERT 后进入编辑模式 点击 Esc 键,然后输入 :wq可以保存文件并退出,其中q表示退出,w表示保存

  • tar # 解压文件的命令 使用tar命令可以压缩/解压文件,hadoop配置中只用到了解压文件,这里给出解压文件的示例命令,其他参数请自行tar --help 或者bing查看。

    1
    2
    3
    tar -xvzf 压缩目录文件 -C 解压到的目录
    # 例子:
    tar -xvzf /opt/jdk-8u162-linux-x64.tar.gz -C $MP

    其中 /opt/jdk-8u162-linux-x64.tar.gz 是压缩文件所在文件路径,$MP 是要解压到的文件目录

  • ip #命令 使用 ip a 命令可以查看服务器的IP地址,输出一般为这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
  [root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:56:e9:74 brd ff:ff:ff:ff:ff:ff
inet 192.168.152.81/24 brd 192.168.152.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::6a9a:2e8:734b:def2/64 scope link noprefixroute
valid_lft forever preferred_lft forever

其中 192.168.152.81就是该服务器的ip地址,要学会去看其他节点服务器的ip地址,以便连接操作。

  • ssh #连接服务器命令 使用 ssh 命令可以连接其他节点服务器,连接命令为:
1
2
3
ssh root@192.168.152.81 #root是连接用户名,192.168.152.81是要连接的服务器ip地址。
root@192.168.152.81's password: #显示这个后输入密码
[root@master ~]# 显示这个代表成功连接

小贴士

  • 在敲命令的过程中可以使用 TAB 键补全命令哦~
  • 可以使用方向键的 ↑ ↓ 键切换到上次执行的命令
  • 使用 ssh root@192.168.152.81 "command" 指令即可远程执行 command 指令,前提是配置了密钥连接哦。

Hadoop安装流程

一,配置服务器基本环境

需要在本板块将服务器所需模块以及其他配置文件弄好,以便后续的配置

  1. 在ubuntu中连接hadoop01,将hadoop01作为master节点进行配置:
1
2
3
4
ssh root@192.168.152.81 
#打开终端,输入上述命令进行连接,root是连接用户名,192.168.152.81是要连接的服务器ip地址。
root@192.168.152.81's password: #显示这个后输入密码
[root@server-1 ~]# 显示这个代表成功连接

如果无法连接说明IP地址更改了,请自行查看!

  1. 设置master主机名称和host文件,便于连接
1
2
3
4
5
6
7
8
9
# 设置主机名
hostnamectl set-hostname master

# 在/etc/hosts文件里插入master和其他节点的ip和域名id
cat>>"/etc/hosts"<<EOF
192.168.152.81 master
192.168.152.101 slave1
192.168.152.121 slave2
EOF

或者使用 vi /etc/hosts 命令在文件末尾插入如下代码

1
2
3
192.168.152.81 master
192.168.152.101 slave1
192.168.152.121 slave2
  1. 生成密钥配置一键免密登录
1
2
3
4
5
6
7
# 生成密钥,回车三次即可
ssh-keygen -t rsa

# 将密钥复制给其他的节点便于一键连接,先输入 yes ,再输入节点密码 123456
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
  1. 解压配置jdk以及hadoop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建目录 /opt/module 用于放置所有需要的模组文件
mkdir /opt/module

# 解压jdk文件,文件路径为/opt/jdk-8u162-linux-x64.tar.gz,如有变更自行更改
tar -xvzf /opt/jdk-8u162-linux-x64.tar.gz -C /opt/module

# 将jdk目录重命名,方便后续配置
mv /opt/module/jdk1.8.0_162 /opt/module/jdk

# 解压hadoop文件,文件路径为tar -xvzf /opt/hadoop-3.3.0.tar.gz,学校自带镜像没有该版本,该版本为2023参赛所用版本,需要手动上传。
tar -xvzf /opt/hadoop-3.3.0.tar.gz -C /opt/module

# 将hadoop目录重命名,方便后续配置
mv /opt/module/hadoop-3.3.0 /opt/module/hadoop
  1. 设置jdk以及hadoop的环境变量

使用 vi /root/.bash_profile 在文件末尾添加如下内容:

1
2
3
4
export JAVA_HOME=/opt/module/jdk
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 配置其他文件节点,执行以下命令:
1
2
3
4
5
# 传输hosts以及.root_profile 配置文件到其他的节点上
scp -r /etc/hosts slave1:/etc
scp -r /etc/hosts slave2:/etc
scp -r /root/.root_profile slave1:/etc
scp -r /root/.bash_profile slave2:/root
  • 打开新的终端页面执行以下指令,配置slave1。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 连接服务器ssh
ssh root@slave1

# 设置主机名
hostnamectl set-hostname slave1

# 创建文件夹
mkdir /opt/module

# 生成密钥,回车三次即可
ssh-keygen -t rsa

# 将密钥复制给其他的节点便于一键连接,先输入 yes ,再输入节点密码 123456
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
  • 配置slave2,打开新的终端页面执行以下指令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 连接服务器ssh
ssh root@slave2

# 设置主机名
hostnamectl set-hostname slave2

# 创建文件夹
mkdir /opt/module

# 生成密钥,回车三次即可
ssh-keygen -t rsa

# 将密钥复制给其他的节点便于一键连接,先输入 yes ,再输入节点密码 123456
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
  1. 查看安装情况

1
2
3
4
5
6
7
8
# 刷新文件使变量生效
source /root/.bash_profile

# 查看Java安装情况和版本
java -version

# 查看hadoop安装情况和版本
hadoop version

如果都正常输出证明安装成功,如果提示未找到命令则需要排查问题。

二,更改hadoop配置文件

一共有6个配置文件需要更改,hadoop-3.3.0版本需要在4个启动/关闭脚本中添加环境参数,更改文件命令为 vi ./文件名

  1. 更改 hadoop-env.sh文件

切换目录到hadoop配置文件目录下

1
cd /opt/module/hadoop/etc/hadoop

使用如下命令更改:

1
vi ./hadoop-env.sh

查找文件中 JAVA_HOME 关键词并替换为下方路径

  • 提示:可以使用 ?JAVA_HOME 搜索关键词, N 键是查找下一个,在文件内标注export JAVA_HOME= 的地方进行修改,如果有注释需要删除注释进行修改,修改成下方内容
1
export JAVA_HOME=/opt/module/jdk
  1. 更改 core-site.xml 文件

配置文件如下:

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/tmp</value>
</property>
</configuration>
  1. 更改 hdfs-site.xml 文件

配置文件如下:

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
</configuration>
  1. 更改 mapred-site.xml 文件

配置文件如下:

1
2
3
4
5
6
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

注:hadoop-2.7.7中需要先复制配置文件模板再进行配置

1
cp ./mapred-site.xml.template ./mapred-site.xml
  1. 更改 yarn-site.xml 文件

配置文件如下:

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
  1. 更改 workers 文件

在hadoop-2.7.7中该文件名称为 slaves ,hadoop-3.3.0中该文件为workers 记得根据实际情况更改文件名!

配置文件如下:

1
2
3
master
slave1
slave2
  1. 更改 start-dfs.sh 以及 stop-dfs.sh 中的启动变量

使用 vi /opt/module/hadoop/sbin/start-dfs.sh 以及 vi /opt/module/hadoop/sbin/stop-dfs.sh 指令分别更改,在 文件开头第二行插入如下代码!(#!/usr/bin/env的下面)

1
2
3
4
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
  1. 更改 start-yarn.sh 以及 stop-yarn.sh 中的启动变量

使用 vi /opt/module/hadoop/sbin/start-yarn.sh 以及 vi /opt/module/hadoop/sbin/stop-yarn.sh 指令分别更改,在 文件开头第二行插入如下代码!(#!/usr/bin/env的下面)

1
2
3
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
  1. 将master节点下的模组文件传输给其他的节点
1
2
scp -r /opt/module slave1:/opt
scp -r /opt/module slave2:/opt

三,启动hadoop

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# hdfs初始化
hdfs namenode -format

# 启动dfs
start-dfs.sh

# 启动yarn
start-yarn.sh

# 检查启动情况
jps

# 检查其他节点启动情况
ssh root@slave1 "source /root/.bash_profile && hostnamectl && jps"
ssh root@slave2 "source /root/.bash_profile && hostnamectl && jps"

如果启动失败记得先关闭yarn以及dfs,然后再排查问题

1
2
stop-dfs.sh
stop-yarn.sh

问题更改之后记得使用下方命令同步文件!

1
2
scp -r /opt/module slave1:/opt
scp -r /opt/module slave2:/opt

四,配置文件记忆

注意:比赛时所有的配置文件都需要背过!!! 为了方便背诵,我将所有需要背的配置文件内容拆解开来,助于理解记忆。

理解记忆:

  • xml文件中配置框架英文含义:

    • configuartion:配置
    • property:属性
    • name:名称
    • value:值
  • hadoop-env.sh 文件中需要重点记忆的内容:

    • export JAVA_HOME Java配置路径
  • core-site.xml 文件中需要重点记忆的内容:

    • property hadoop默认主节点的名称
      • name fs.defaultFS
      • value hdfs://master:9000
    • property hadoop缓存目录路径值
      • name hadoop.tmp.dir
      • value /opt/module/hadoop/tmp
  • hdfs-site.xml 文件中需要重点记忆的内容:

    • property hadoop分布式节点数量名称
      • name dfs.replication
      • value 3
    • property hadoop namenode第二节点http地址
      • name dfs.namenode.secondary.http-address
      • value slave1:50090
  • mapred-site.xml 文件中需要重点记忆的内容:

    • property mapreduce framework 名称
      • name mapreduce.framework.name
      • value yarn
  • yarn-site.xml 文件中需要重点记忆的内容:

    • property yarn资源管理主机名称
      • name yarn.resourcemanager.hostname
      • value master
    • property yarn节点管理 aux-services
      • name yarn.nodemanager.aux-services
      • value mapreduce_shuffle
  • workers 文件中需要重点记忆的内容:

    • 所有节点的主机名称
  • *-dfs.sh 文件中需要重点记忆的内容:

    • HDFS_DATANODE_USER=root # HDFS_数据节点_用户=root
    • HADOOP_SECURE_DN_USER=hdfs # HADOOP_安全_DN_用户=hdfs
    • HDFS_NAMENODE_USER=root # HDFS_名称节点_用户=root
    • HDFS_SECONDARYNAMENODE_USER=root # HDFS_第二名称节点_用户=root
  • *-yarn.sh 文件中需要重点记忆的内容:

    • YARN_RESOURCEMANAGER_USER=root # YARN_资源管理_用户=root
    • HADOOP_SECURE_DN_USER=yarn # HADOOP_安全_DN_用户=yarn
    • YARN_NODEMANAGER_USER=root # YARN_节点管理_用户=root

一键安装脚本

针对南洋学院内网2022参赛环境编写的一键安装脚本,在master节点执行本脚本可以一键安装hadoop。仅供参考

请不要在学习hadoop搭建的时候使用脚本偷懒!脚本参考是为了辅助理解计算机配置hadoop的流程!学习hadoop搭建的过程无需查看,或仅供参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#! /bin/bash

### FIRST 第一板块

# echo "set PATH" 设置脚本执行环境变量,文件位置,模组路径等

JF=/opt/jdk-8u162-linux-x64.tar.gz
HF=/opt/hadoop-3.3.0.tar.gz
MP=/opt/module

# echo "set host 设置主机名以及配置host文件"
hostnamectl set-hostname master

cat>>"/etc/hosts"<<EOF
192.168.152.81 master
192.168.152.101 slave1
192.168.152.121 slave2
EOF

# echo "set ssh key 配置ssh key进行自动连接"

ssh-keygen -t rsa # -n '' -f ~/.ssh/id_rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

# echo "set java && hadoop" 解压配置jdk以及hadoop

mkdir $MP
mkdir $MP/jdk
tar -xvzf /opt/jdk-8u162-linux-x64.tar.gz -C $MP/jdk --strip-components 1

mkdir $MP/hadoop
tar -xvzf /opt/hadoop-3.3.0.tar.gz -C $MP/hadoop --strip-components 1

# echo "set PATH 设置jdk以及hadoop的环境变量"

cat>>"/root/.bash_profile"<<EOF
export JAVA_HOME=$MP/jdk
export PATH=\$JAVA_HOME/bin:\$PATH
export HADOOP_HOME=$MP/hadoop
export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin
EOF


# echo "check install 查看安装情况"

source /root/.bash_profile
java -version
hadoop version

# echo "set slave 设置其他slave节点的主机配置文件"

scp -r /root/.bash_profile slave1:/root/
scp -r /root/.bash_profile slave2:/root/
scp -r /etc/hosts slave1:/etc/
scp -r /etc/hosts slave2:/etc/

# echo "set ssh slave ssh连接设置其他节点"

ssh root@slave1 <<EOF
hostnamectl set-hostname slave1
mkdir $MP

ssh-keygen -t rsa -n '' -f ~/.ssh/id_rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
EOF

ssh root@slave2 <<EOF
hostnamectl set-hostname slave2
mkdir $MP

ssh-keygen -t rsa -n '' -f ~/.ssh/id_rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
EOF

### SECOND 第二板块

# hadoop settings file 设置hadoop配置文件

# 替换 hadoop-env.sh 中的JAVA_HOME PATH文件
sed -i '/export JAVA_HOME=/cexport JAVA_HOME='$MP'/jdk' $MP/hadoop/etc/hadoop/hadoop-env.sh

# 配置 core-site.xml 文件
cat > $MP/hadoop/etc/hadoop/core-site.xml <<EOF
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/tmp</value>
</property>
</configuration>
EOF

# 配置 hdfs-site.xml 文件
cat > $MP/hadoop/etc/hadoop/hdfs-site.xml <<EOF
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
</configuration>
EOF

# 配置 mapred-site.xml 文件
cp $MP/hadoop/etc/hadoop/mapred-site.xml.template $MP/hadoop/etc/hadoop/mapred-site.xml
cat > $MP/hadoop/etc/hadoop/mapred-site.xml<<EOF
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
EOF

# 配置 yarn-site.xml 文件
cat > $MP/hadoop/etc/hadoop/yarn-site.xml<<EOF
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
EOF

# 配置 slaves 文件 hadoop-2.7.7
cat > $MP/hadoop/etc/hadoop/slaves<<EOF
master
slave1
slave2
EOF

# 配置workers wenjian hadoop-3.3.0
cat > $MP/hadoop/etc/hadoop/workers<<EOF
master
slave1
slave2
EOF

# hadoop-3.3.0 need to add PATH for start&stop shell hadoop-3.3.0需要添加PATH变量到启动/关闭脚本中

sed -i "2i HDFS_DATANODE_USER=root" $MP/hadoop/sbin/start-dfs.sh
sed -i "2i HADOOP_SECURE_DN_USER=hdfs" $MP/hadoop/sbin/start-dfs.sh
sed -i "2i HDFS_NAMENODE_USER=root" $MP/hadoop/sbin/start-dfs.sh
sed -i "2i HDFS_SECONDARYNAMENODE_USER=root" $MP/hadoop/sbin/start-dfs.sh

sed -i "2i HDFS_DATANODE_USER=root" $MP/hadoop/sbin/stop-dfs.sh
sed -i "2i HADOOP_SECURE_DN_USER=hdfs" $MP/hadoop/sbin/stop-dfs.sh
sed -i "2i HDFS_NAMENODE_USER=root" $MP/hadoop/sbin/stop-dfs.sh
sed -i "2i HDFS_SECONDARYNAMENODE_USER=root" $MP/hadoop/sbin/stop-dfs.sh

sed -i "2i YARN_RESOURCEMANAGER_USER=root" $MP/hadoop/sbin/start-yarn.sh
sed -i "2i HADOOP_SECURE_DN_USER=yarn" $MP/hadoop/sbin/start-yarn.sh
sed -i "2i YARN_NODEMANAGER_USER=root" $MP/hadoop/sbin/start-yarn.sh

sed -i "2i YARN_RESOURCEMANAGER_USER=root" $MP/hadoop/sbin/stop-yarn.sh
sed -i "2i HADOOP_SECURE_DN_USER=yarn" $MP/hadoop/sbin/stop-yarn.sh
sed -i "2i YARN_NODEMANAGER_USER=root" $MP/hadoop/sbin/stop-yarn.sh

### THIRD 第三板块

# trasnfer module 将配置好的模组路径下的所有文件传输到其他节点
scp -r $MP slave1:/opt
scp -r $MP slave2:/opt

# check hadoop start 启动hadoop
hdfs namenode -format
$MP/hadoop/sbin/stop-dfs.sh
$MP/hadoop/sbin/stop-yarn.sh
$MP/hadoop/sbin/start-dfs.sh
$MP/hadoop/sbin/start-yarn.sh

# 检查启动情况
hostnamectl
jps

ssh root@slave1 "source /root/.bash_profile && hostnamectl && jps"
ssh root@slave2 "source /root/.bash_profile && hostnamectl && jps"

其他操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# 覆盖文件
cat>"/etc/hosts"<<EOF
EOF

# 在文件末尾添加

cat>>"/etc/hosts"<<EOF
EOF

# 自动ssh配置
sed -i '/StrictHostKeyChecking/cStrictHostKeyChecking no' /etc/ssh/ssh_config
rm -rf ~/.ssh/{known_hosts,id_rsa*}

# tar末尾添加参数--strip-components 1 可以去掉最外层的目录

# 目录更改重命名
mv $MP/hadoop-2.7.7 $MP/hadoop
mv $MP/jdk1.8.0_162 $MP/jdk

ssh root@slave1 "source /root/.bash_profile"
ssh root@slave2 > /dev/null 2>&1 <<EOF

# JAVA_HOME路径直接添加
echo "export JAVA_HOME=$MP/jdk" >> $MP/hadoop/etc/hadoop/hadoop-env.sh

# 传输hadoop的配置文件所在目录
scp -r $MP/hadoop/etc/hadoop slave1:$MP/hadoop/etc
scp -r $MP/hadoop/etc/hadoop slave2:$MP/hadoop/etc

# dfs启动脚本添加参数,不能直接使用,需要添加到文件头
cat >> $MP/hadoop/sbin/start-dfs.sh<<EOF

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

EOF

cat >> $MP/hadoop/sbin/stop-dfs.sh<<EOF

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

EOF

cat >> $MP/hadoop/sbin/start-yarn.sh<<EOF

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

EOF

cat >> $MP/hadoop/sbin/stop-yarn.sh<<EOF

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

EOF

# 传输hadoop启动脚本文件
scp -r $MP/hadoop/sbin slave1:$MP/hadoop
scp -r $MP/hadoop/sbin slave2:$MP/hadoop