准备工作
通过克隆获得三台虚拟机
准备工作:时间同步、时区调整、JDK1.8环境、配置主机名、关闭防火墙、配置静态IP
无特别说明,三台虚拟机都要完成准备工作
1、时间同步
ntpdate ntp.aliyun.com
2、调整时区
timedatectl set-timezone Asia/Shanghai
3、JDK 1.8
java -version
4、修改主机名
三台虚拟机分别设置为:master、node1、node2
master为主节点、其余都是从节点
主机名修改完后断开连接,重新登录即可生效
hostnamectl set-hostname 主机名
5、关闭防火墙
systemctl stop firewalld
- 查看防火墙状态:
systemctl status firewalld
- 取消防火墙自启:
systemctl disable firewalld
6、静态IP配置
-
直接使用图形化界面配置(不推荐)
-
手动编辑配置文件进行配置
# 1、编辑网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 需要根据自身情况修改: # IPADDR(根据自己的网段,自定义IP地址,三台虚拟机不能使用相同IP) # GATEWAY(根据自己的网段填写对应的网关地址) # DNS1 (同网关地址保持一致即可) # 其他直接使用下列配置 TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.190.100 GATEWAY=192.168.190.2 NETMASK=255.255.255.0 DNS1=192.168.190.2 DNS2=223.6.6.6 # 2、关闭NetworkManager,并取消开机自启 systemctl stop NetworkManager systemctl disable NetworkManager # 3、重启网络服务 systemctl restart network
7、免密登录
只需要配置master到master、master到node1、master到node2即可
# 1、生成密钥
ssh-keygen -t rsa
# 2、配置免密登录
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
# 3、测试免密登录
# 从master分别登录node1、node2
# 观察是否需要密码,如不需要则免密登录配置成功
ssh node1
ssh node2
8、修改hosts
需要基于三台节点的静态IP进行配置
vim /etc/hosts
# 按情况加入以下内容
192.168.190.100 master
192.168.190.101 node1
192.168.190.102 node2
Hadoop集群搭建
1、上传安装包并解压
# 使用xftp上传压缩包至master的/usr/local/soft/packages/
# 上传位置无特殊要求,能找到即可
cd /urs/local/soft/packages/
# 解压
tar -zxvf hadoop-3.1.1.tar.gz -C /usr/local/soft/
2、配置环境变量
三台都需要修改
vim /etc/profile
# 增加以下配置
HADOOP_HOME=/usr/local/soft/hadoop-3.1.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
# 重新加载环境变量
source /etc/profile
3、修改Hadoop配置文件
-
切换到配置文件所在目录
cd /usr/local/soft/hadoop-3.1.1/etc/hadoop/
-
通过vim编辑并修改下列配置文件
-
hadoop-env.sh
# 在最后加入以下配置 export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 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
-
core-site.xml
<property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/soft/hadoop-3.1.1/data</value> </property> <property> <name>fs.trash.interval</name> <value>1440</value> </property>
-
hdfs-site.xml
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property>
-
mapred-site.xml
<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> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property>
-
workers
node1 node2
-
yarn-site.xml
<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.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property>
-
4、分发Hadoop到node1、node2
cd /usr/local/soft/
scp -r hadoop-3.1.1/ node1:`pwd`
scp -r hadoop-3.1.1/ node2:`pwd`
5、格式化namenode
只需在第一次启动的时候在Master节点上执行
hdfs namenode -format
6、启动Hadoop集群
start-all.sh
7、检查master、node1、node2上的进程
-
master:
[root@master soft]# jps 2597 NameNode 2793 SecondaryNameNode 2953 ResourceManager 3215 Jps
-
node1:
[root@node1 jdk1.8.0_171]# jps 11361 DataNode 11459 NodeManager 11559 Jps
-
node2:
[root@node2 ~]# jps 11384 DataNode 11482 NodeManager 11582 Jps
8、访问HDFS的WEB界面
注意新版本的端口由50070变成了9870
http://master:9870
9、访问YARN的WEB界面
http://master:8088
Hadoop集群重置
1、停止集群
stop-all.sh
# 若进程停不掉 可直接使用进程号进行kill
2、删除所有节点上hadoop产生的数据文件
三台都要执行
cd /usr/local/soft/hadoop-3.1.1
rm -rf data/
3、重新格式化namenode
hdfs namenode -format
4、启动集群
start-all.sh