一、环境准备
1、软件准备
- VMware主机: VM17
- Jdk:1.8.0_211
- Hadoop:3.3.6
- 操作系统:centos7
2、在伪分布式完成的基础上,提前设想好集群规划
hadoop_base | slave1/slave2 |
---|---|
192.168.10.100 | 192.10.101/192.10.102 |
NameNode,DataNode,NodeManager,ResourceManager,SecondaryNameNode | DataNode,NodeManager |
二、hadoop集群搭建
1、 伪分布式集群完成的基础上,原虚拟机为主节点,完全克隆2个虚拟机作为副节点,命名为hadoop_base,slave1,slave2
2、 修改主机名,三台主机分别执行语句
hostnamectl set-hostname hadoop101
hostnamectl set-hostname hadoop102
hostnamectl set-hostname hadoop103
3、 主节点添加ip映射,vim /etc/hosts
4、 在主节点配置免密登录,ssh-keygen -t rsa,遇到信息一直回车
然后把公钥复制到各个节点,第一次登录会输入密码
#在主节点输入
ssh-copy-id hadoop101
ssh-copy-id hadoop102
ssh-copy-id hadoop103
测试免密是否成功,不需要密码直接登入即为成功,exit回到原节点
5、修改hadoop配置文件
(1) core-site.xml
(2) hdfs-site.xml(在hadoop3.x中,文件系统的web界面的端口从50070改为了9870)
(3) yarn-site.xml
(4) mapred-site.xml
(5) workers
(6) 分发文件
注意:只需要分发hosts和workers,因为是在伪分布的基础上进行的完全分布,完全克隆的时候已经把jdk和hadoop的环境配置已经克隆了,hadoop102和hadoop103为副节点主机名
scp /etc/hosts root@hadoop102:/etc/
scp /etc/hosts root@hadoop103:/etc/
6、 重新格式化集群
注意:本次实验是在伪分布式完成的基础上进行重新格式化,需要删除hdfs-site.xml配置的dfs.namenode.name.dir和dfs.data.node.data.dir属性里的东西和tmp文件夹
再进行格式化,hdfs namenode -format
7、 启动集群,start-all.sh
8、 查看进程
主节点
副节点
9、 访问webui,hadoop:9870或者192.10.100:9870
10、8088端口是Hadoop的YARN资源管理器端口,用于管理Hadoop集群中的资源
hadoop:8088或者192.10.100:8088
11、测试,新建文件夹和删除文件夹
三、 实验中出现的问题和解决方法
在刚完全克隆后,两个克隆机没有出现ens33,没有出现ip
解决方法:
执行下列命令
systemctl stop NetworkManager
systemctl disable NetworkManager
#激活连接
ifup ens33
#重启网络服务
service network restart
原因:
NetworkManager主要管理两个对象:Connection(网卡连接配置)和Device(网卡配置),他们之间是多对一的关系,但是同一时刻只能有一个Connection对于Device才生效。