Hadoop 3.3.4 集群搭建
环境准备
虚拟机:Oracle VM VirtualBox
操作系统: Centos8
Hadoop版本:3.3.4
JDK版本:1.8
免密登录(SSH协议):MobaXterm
安装虚拟机
打开Oracle VM VirtualBox并新建虚拟机


内存选择

选择现在创建虚拟硬盘

设置虚拟硬盘文件类型

建议动态分配

设置虚拟硬盘大小

注意:创建完先不要打开,先进行环境配置
设置存储
选择虚拟盘Centos8,用于启动
设置虚拟机网卡
这里要设置双网卡,后面才能与主机与外网进行连接

启动创建的虚拟机

注:虚拟机鼠标到桌面是右Ctrl
选择语言

设置时间


设置网络

将网卡打开即可,后面还可更改
设置root账户


可创建新用户也可以不创建,但注意区分密码
开始安装
到此,虚拟机创建完成
Linux系统网络配置
图形界面与字符界面
图形界面到字符界面:Ctrl+Alt+F2/F3
字符界面到图形界面:Ctrl+Alt+F1
root权限登录
登录…
主机名
查看主机名
1 | hostname |
修改主机名,这里改成名字缩写加序号,便于管理
1 | hostnamectl set-hostname 主机名 |
配置IP映射
1 | vi /etc/hosts |
1 | 192.168.56.201 hsq01 |

保存并退出,底行命令下wq
配置网络参数
1 | vi /etc/sysconfig/network-scripts/ifcfg-enp0s8 |
1 | TYPE=Ethernet |

重启虚拟机
1 | reboot |
- ONBOOT=yes:表示启动这块网卡
- BOOTPROTO=static:表示静态路由协议,保持IP固定
- IPADDR:虚拟机IP地址,与前面映射一致
- GATEWAY:虚拟机网关,一般是将IP地址最后一位数变成2
- NETMASK:虚拟机掩码,配置为255.255.255.0即可
另一块网卡(ifcfg-enpOs3)保持打开即可
配置效果验证
Linux下查看网卡信息
1 | ifconfig |

enpOs8下出现自己配置的静态IP,说明配置成功
再执行
1 | ping www.baidu.com |

有数据传输说明网络正常,Ctrl+c退出当前命令。
window系统下打开cmd窗口执行如下命令,地址为设置的虚拟机地址。
1 | ping 192.168.56.201 |

有数据传输说明主机与虚拟机建立联系。
到此虚拟机网络配置完成!
虚拟机克隆
右击虚拟机 01,点击复制


按如上步骤设置主机名与IP地址
重复上述步骤
注意:与之前设置的 IP 映射一致
复制好 03 虚拟机
进行同样的配置
SSH 服务配置
打开 MobaXterm 远程连接工具
点击导航栏上的”Session”,然后单击”SSH”
点击 OK,设置好 MobaXterm 的密码后,输入 root 用户密码后即可实现远程登录。
到此,虚拟机远程密码登录实现!
虚拟机在 Oracle VM VirtualBox 即可在 MobaXterm 实现对单台虚拟机的操作。
同理:对 02,03 虚拟机实现 SSH 免密登录
删除虚拟机的~/.ssh目录
1 | [root@hsq01 ~]# rm -rf .ssh |
在 01 虚拟机上新建 SSH 公私密钥对
1 | [root@hsq01 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa |
实现在 01 虚拟机上免密登录 02,03 虚拟机
1 | [root@hsq01 ~]# ssh-copy-id root@hsq01 |
提示:出现(yes/no)?,输入yes,Enter 即可。
验证 SSH 免密登录是否配置成功
1 | ssh hsq02 |

如此表示登录成功!
输入exit,Enter 即可退回 01 虚拟机。
Hadoop 集群搭建
提示:
Window 下安装好的安装包直接通过 MobaXterm 拖入即可
安装JDK
将 JDK8 安装包放到如下目录

安装 JDK
1 | [root@hsq01 ~]# tar -zxvf (安装包name)jdk-8u341-linux-x64.tar.gz -C /usr/local/ |
配置 JDK 系统环境变量
1 | [root@hsq01 ~]# vi /etc/profile |

1 | #java environment variables |
使配置文件生效
1 | [root@hsq01 ~]# source /etc/profile |
JDK 环境验证
1 | java -version |

到此JDK安装和配置成功。
安装 Hadoop
将 Hadoop 安装包 放到如下目录

执行安装
1 | [root@hsq01 ~]# tar -zxvf (安装包name)/root/hadoop-3.3.4.gz -C /usr/local/ |
配置 Hadoop 环境变量
1 | [root@hsq01 ~]# vi /etc/profile |
1 | #hadoop environment variables |

让配置文件生效
1 | [root@hsq01 ~]# source /etc/profile |
验证
1 | [root@hsq01 ~]# hadoop version |

Hadoop 集群配置
修改 hadoop-env.sh 文件
1 | [root@hsq01 ~]# cd $HADOOP_HOME |
1 | export JAVA_HOME=/usr/local/jdk1.8.0_341 |

配置 core-site.xml 文件
1 | [root@hsq01 hadoop]# vi core-site.xml |
1 | <configuration> |

配置 hdfs-site.xml
1 | [root@hsq01 hadoop]# vi hdfs-site.xml |
1 | <configuration> |

配置 mapred-site.xml 文件
1 | [root@hsq01 hadoop]# vi mapred-site.xml |
1 | <configuration> |

配置 yarn-site.xml 文件
1 | [root@hsq01 hadoop]# vi yarn-site.xml |
1 | <configuration> |

设置从节点,也就是修改 workers 文件
1 | [root@hsq01 hadoop]# vi workers |
文件中的内容替换如下,即三个虚拟机 hostname,每个主机名占一行
注意:Hadoop2.x版本是执行 vi slaves
将主节点的配置分发到其他节点
02 03虚拟机下需要有对应文件夹
1 | [root@hsq01 ~]# scp /etc/profile hsq02:/etc/profile |
执行完上述命令后,还需要再 02,03 虚拟机上分别执行 source /etc/profile 指令刷新配置文件。到处,整个集群所有节点都有了 Hadoop 运行所需要的环境和文件,Hadoop 集群安装配置完成。
Hadoop 集群测试
格式化文件系统
1 | [root@hsq01 ~]# hdfs namenode -format |
或者
1 | [root@hsq01 ~]# hadoop namenode -format |

注意:
- 格式化只需要在 Hadoop 初次启动前执行一次即可;
- 出现 has been successfully formatted 表明文件系统成功格式化;
- 否则,指令错误或者前面配置错误
重新格式化需要删除如下文件夹
- Hadoop目录下的
logs文件夹 hadoop.tmp.dir配置的文件夹
启动和查看 Hadoop 进程
虚拟机01(主节点虚拟机)下启动 Hadoop 进程
1 | [root@hsq01 ~]# start-dfs.sh |

查看 Hadoop 进程
① 在 01 虚拟机中查看。
② 在 02 虚拟机中查看
③ 在 03 虚拟机中查看
此时,看到规划的 Hadoop 均已启动,则 Hadoop 全分布式搭建成功
查看Web界面
先配置 window 下的 hosts 文件


用VS Code 打开,用管理员身份保存修改即可
关闭虚拟机防火墙
1 | systemctl stop firewalld.service |

三台虚拟机都执行
一定要关闭防火墙,不然无法访问
window 下浏览器访问 http://hsq01:9870 和 http://hsq01:8088


到此,Hadoop 集群的 HDFS UI 界面和 YARN UI 界面通过 Web 界面均可访问,并且显示正常,便于通过 Web 界面对集群状态进行管理和查看。
简单使用 Hadoop 集群
新建 test.txt 文本
在集群主节点 01 上的/root/目录下,使用vi test.txt新建一个 test.txt 文本文件,并编写内容
1 | 这是我的测试文件 |
上传 test.txt 到 HDFS 的 / 目录下
1 | [root@hsq01 ~]# hdfs dfs -put test.txt / |
查看上传的文件
1 | [root@hsq01 ~]# hdfs dfs -cat /test.txt |

通过 Web 界面下载文件,用记事本查看
刚刚的 Web 界面刷新
点击文件下载

打开
内容一致,表明 Hadoop 搭建成功!!!
说明:之前使用 JDK 19 也成功搭建 Hadoop 集群,但 Web 界面无法下载上传的文件,没有解决,查阅资料说是使用的 JDK 版本过新(只是 Web 界面那有问题,没有找到合适方法解决),所以建设使用稳定的 JDK 版本,新版本的 Hadoop 暂时没有遇到问题。