一、准备资源(1~4下载均为免费资源,也可自行下载)
- 操作系统(CentOS7)
(1)带桌面版本,用来当作master:
百度网盘链接:点击下载
提取码:wz4z
(2)不带桌面版本,用来当作slave:
百度网盘链接:点击下载
提取码:gjyf - Hadoop-2.9.2
百度网盘链接:点击下载
提取码:gtg5 - jdk1.8
百度网盘链接:点击下载
提取码:8vop - FileZllia
百度网盘链接:点击下载
提取码:5oqu - VMWare
爱莫能助,各位自己找资源吧!
二、集群概述:
一共配置3台虚拟机,3台虚拟机分别命名为:master,slave01,slave02;
每台虚拟机的用户均使用root用户,密码均为123456;
三、准备工作
请自己将三台虚拟机(一台有桌面,另外俩台没有桌面)在VMware中装好,同时修改hostname
和hosts
文件,并且hosts
文件中要包含三台虚拟机和对应ip地址的映射关系,具体配置请参考往期博客。
四、免密登录
每一台虚拟机都执行以下操作:
1. 修改 sshd_config
配置文件:
vi /etc/ssh/sshd_config
2. 修改43行内容:将PubkeyAuthentication yes
的注释删除掉;
3. 在第44行内容添加:
RSAAuthentication yes
4. 重启sshd.service
服务:
systemctl restart sshd.service
5. 生成密钥:
# 第一条命令遇到输入直接回车
ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
6. 免密其他虚拟机:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave02
7. 免密自己:
ssh master
五、配置master
- 配置
HADOOP_HOME
环境变量:
(1)创建hadoop.sh
脚本:
vi /etc/profile.d/hadoop.sh
(2)向hadoop.sh
脚本写入以下内容:
export HADOOP_HOME=/usr/local/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(3)使hadoop.sh
脚本生效:
source /etc/profile.d/hadoop.sh
- 配置
$HADOOP_HOME/etc/hadoop/hadoop-env.sh
配置文件:
(1)修改第25行为:
export JAVA_HOME=/usr/java/jdk1.8.0_311
(2)增加第26行内容为:
export HADOOP_SSH_OPTS='-o StrictHostKeyChecking=no'
(3)修改第113行内容为:
export HADOOP_PID_DIR=${HADOOP_HOME}/pids
- 配置
$HADOOP_HOME/etc/hadoop/mapred-env.sh
配置文件:
(1)修改第16行内容为:
export JAVA_HOME=/usr/java/jdk1.8.0_311
(2)修改第28行内容为:
export HADOOP_MAPRED_PID_DIR=${HADOOP_HOME}/pids
- 配置
$HADOOP_HOME/etc/hadoop/yarn-env.sh
配置文件:
(1)修改第23行注释为:
export JAVA_HOME=/usr/java/jdk1.8.0_311
(2)文件最后添加一行内容为:
export YARN_PID_DIR=${HADOOP_HOME}/pids
- 配置
$HADOOP_HOME/etc/hadoop/core-site.xml
配置文件:
在<properties></properties>
写入如下内容:
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.159.3:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.9.2/hdfsdata</value>
</property>
- 配置
$HADOOP_HOME/etc/hadoop/mapred-site.xml
配置文件:
在<properties></properties>
写入如下内容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 配置
$HADOOP_HOME/etc/hadoop/yarn-site.xml
配置文件:
在<properties></properties>
写入如下内容:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
- 修改
$HADOOP_HOME/etc/hadoop/slaves
文件为:
slave01
slave02
六、配置slave
将master
中的配置文件转给slave
:
scp -R /ect/profile.d/hadoop.sh slave01:/ect/profile.d
scp -R /ect/profile.d/hadoop.sh slave02:/ect/profile.d
scp -R /usr/local/hadoop-2.9.2 slave01:/usr/local
scp -R /usr/local/hadoop-2.9.2 slave02:/usr/local
将slave
重启:
reboot
七、启动Hadoop
只能在master
运行以下命令:
hdfs namenode -format
start-dfs.sh
start-yarn.sh
mr-jobhistory.sh start historyserver
八、关闭Hadoop
只能在master
运行以下命令:
mr-jobhistory.sh stop historyserver
stop-yarn.sh
stop-dfs.sh