环境准备
jdk版本:jdk1.8.0_211
hadoop版本:Hadoop3.3.6
操作系统:CentOS7
存放目录
使用xftp8连接虚拟机ip,上传本地文件到虚拟机里,直接拖拽容易缺少文件
jdk压缩包:opt/jdk-8u211-linux-x64.tar.gz
hadoop压缩包:opt/hadoop-3.3.6.tar.gz
jdk解压:/opt
Hadoop解压:/opt
/opt目录用来安装附加软件包,是用户级的程序目录,可以理解为D:/Software。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。
/usr:系统级的目录,可以理解为C:/Windows/。
/usr/lib:理解为C:/Windows/System32。
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
网络规划
主机名 |
IP地址 |
master |
192.168.10.100 |
slave1 |
192.168.10.101 |
slave2 |
192.168.10.102 |
虚拟机IP配置
一、IP配置-master
vi /etc/sysconfig/network-scripts/ifcfg-ens33
电脑右上角insert按键修改文件内容
修改完成按左上角esc退出,输入:wq保存并退出
二、jdk配置
1.解压jdk
tar -zxvf /opt/jdk-8u211-linux-x64.tar.gz -C /opt/
2.修改/etc/profile文件
vi /etc/profile
电脑instert按键可以编辑内容,文件最下方
export JAVA_HOME=/opt/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin
按电脑左上角esc退出,输入:wq保存并退出
刷新环境变量
source /etc/profile
查看环境变量是否配置成功
java -version
java配置版本不一致
出现java版本和配置不一致,一般是系统自带的jdk,删除jdk-openXXX-XXX就可以了,最后要再刷新一下环境变量
查询所有跟Java相关的安装的rpm包
rpm -qa | grep java
删除系统其他jdk版本
rpm -e --nodes XXX
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.252.b09-2.el8_1.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.252.b09-2.el8_1.x86_64
卸载完重新刷新环境变量
java -version
二、hadoop集群搭建
1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.添加ip映射
vi /etc/hosts
在/etc/hosts的末尾添加
192.168.10.100 master
192.168.10.101 slave1
192.168.10.102 slave2
3.克隆机配置
3.1克隆两台
关机状态下才能克隆master
同样的再创建一个slave2
3.2修改主机名
root登录开启三台虚拟机,修改三个节点的/etc/hosts文件,三台机器分别执行以下语句
master:
hostnamectl set-hostname master
slave1:
hostnamectl set-hostname salve1
slave2:
hostnamectl set-hostname slave2
所有虚拟机全部执行reboot重启
3.3修改克隆机IP
slave1和slave2分别执行
vi /etc/sysconfig/network-scripts/ifcfg-ens33
把IPADDR修改为192.168.10.101和192.168.10.102
4.配置免密登录
ssh-keygen -t rsa
把公钥复制到各个节点,第一次登陆会让输入密码
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
查看免密登录是否成功
ssh slave1
exit回到master节点
5.修改Hadoop配置文件
解压文件
tar -zxvf /opt/hadoop-3.3.6.tar.gz -C /opt
cd /opt/hadoop-3.3.6/etc/hadoop
配置Hadoop环境变量
vi /etc/profile
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
测试Hadoop环境变量是否成功
source /etc/profile
hadoop version
5.1hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_211
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
5.2core-site.xml
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-3.3.6</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440 </value>
</property>
</configuration>
5.3hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:9868</value>
</property>
</configuration>
5.4mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
5.5yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vpmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
5.6workers
vi workers
将localhost改为
6.文件分发
分发jdk安装目录
scp -r /opt/jdk1.8.0_211 root@slave1:/opt/
scp -r /opt/jdk1.8.0_211 root@slave2:/opt/
分发hadoop安装目录
scp -r /opt/hadoop-3.3.6 root@slave1:/opt/
scp -r /opt/hadoop-3.3.6 root@slave2:/opt/
分发环境变量
scp /etc/profile root@slave1:/etc
scp /etc/profile root@slave2:/etc
在slave1、slave2中使用source /etc/profile命令初始化系统环境变量
7.启动集群
首次启动集群需要先格式化 NameNode 节点
在master上执行
hdfs namenode -format
启动集群
start-dfs.sh
start-yarn.sh
或者直接启动start-all.sh
三台节点jps查看
网页界面
本地浏览器中查看 Hadoop web 界面:192.168.10.100:9870
192.168.10.100:8088
集群关闭
stop-all.sh
OK!!!waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa~~~~~~~~