【大数据技术】教程01:搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell)

ops/2025/2/3 18:12:26/

搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell)

资源下载

  • VMware Workstation Pro 16
  • CentOS-Stream-10-latest-x86_64-dvd1.iso
  • FinalShell 4.5.12

注:请在阅读本篇文章前,将以上资源下载下来。

写在前面

本章主要介绍搭建完全分布式高可用集群的前置准备:

  • 下载并安装 VMware workstation Pro
  • 使用 CentOS 镜像文件创建虚拟机
  • 使用 FinalShell 远程连接虚拟机
  • 配置虚拟机的开发环境。

安装VMwarePro16

按照以下步骤进行安装即可。

  1. 双击.exe安装文件进入安装向导界面。

00

  1. 勾选用户许可协议。

01

  1. 设置兼容。

02

  1. 设置安装位置并将VMware添加到系统变量。

03

  1. 设置用户体验。

04

  1. 设置快捷方式。

05

  1. 准备安装。

06

  1. 安装程序。

07

  1. 填入许可证,以下3个密匙中随便选择一个。

    • 激活密钥1:ZF3R0-FHED2-M80TY-8QYGC-NPKYF

    • 激活密钥2:YF390-0HF8P-M81RQ-2DXQE-M2UT6

    • 激活密钥3:ZF71R-DMX85-08DQY-8YMNC-PPHV8

08

  1. 完成安装。

09

  1. 安装成功后双击启动VMware WorkStation Pro。

10

创建CentOS虚拟机

按照以下步骤创建一个名为hadoop的虚拟机。这里我使用的镜像文件是 CentOS-Stream-10-latest-x86_64-dvd1.iso。

  1. 单击“创建新的虚拟机”。

11

  1. 选择“典型”。

12

  1. 选择“稍后安装操作系统”。

13

  1. 设置客户机操作系统。

14

  1. 命名虚拟机并设置安装位置。

15

  1. 指定磁盘容量,默认即可。

16

  1. 准备安装。

17

  1. 单击“CD/DVD”。

18

  1. 配置CentOS镜像文件。

19

  1. 修改内存为2GB。

20

  1. 启动虚拟机,选择 install CentOS Stream 10 安装CentOS10。

21

  1. 等待安装。

22

  1. 选择语言。

23

  1. 依次配置以下几个部分。

24

① 安装目标位置

默认即可,直接单击“完成”返回。

25

② 软件选择

选择“Server with GUI”,并勾选“Performance Tools”

26

③ 时间和日期

地区选择“亚洲”, 城市选择“上海”

27

④ 网络和主机名

确保网卡已经打开(左下角可设置主机名,也可以后续设置)

28

⑤ 配置ROOT账户

注意勾选“允许root用户使用密码进行SSH登录”,作为练习,密码可以设置简单点,比如123456。

29

  1. 单击“安装”按钮等待安装(安装较慢,估计需要等待几十分钟)。

30

  1. 安装完成后重启系统即可。

31

虚拟机的基础配置

包括配置基础环境、配置远程登录、克隆虚拟机、配置网络、配置主机名等。

1. 配置基础环境

重启虚拟机后,按以下步骤进行虚拟机的基础配置。

  1. 选择语言。

32

  1. 选择键盘布局。

33

  1. 开启位置服务。

34

  1. 选择时区。

35

  1. 创建用户。

36

  1. 设置密码。

37

  1. 完成。

38

2. 配置远程登录

按以下步骤实现通过SSH远程登陆虚拟机。

  1. 打开终端。

39

40

  1. 输入su root命令,然后输入密码切换到root用户。

41

  1. 检查SSH服务是否安装和启动。

分别执行rpm -qa | grep sshps -ef | grep sshd命令,查看当前虚拟机是否安装了SSH服务,以及SSH服务是否启动。

42

  • rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

  • ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

  • grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。该命令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

如果没有安装,可以使用以下命令进行安装yum install openssh-server openssh-clients

  1. 修改SSH服务配置文件。

默认情况下,CentOS Stream 10不允许用户root进行远程登录。

在虚拟机hadoop中执行vi /etc/ssh/sshd_config命令编辑配置文件sshd_config。

① 按下键盘的 i 键进入编辑状态。

② 将 PermitRootLogin 修改为 yes

③ 按下键盘的 Esc 键,输入 :wq 再按下键盘的 enter 键保存并退出文件。

43

对于小白,这里介绍下vi命令的简单使用方式:使用vi命令打开文件后,输入字母i进入插入模式 => 修改相应的文件内容 => 按Esc键进入命令行模式 => 输入:进入底行模式 => 输入x或者wq保存退出。

注:如果文件修改后不想保存,进行底行模式后输入q!进行不保存退出。

  1. 重启SSH服务。

输入命令 systemctl restart sshd 重启SSH服务。

44

到此,成功配置了远程登陆的虚拟机环境。

3. 克隆3个虚拟机

  1. 关闭虚拟机。

45

  1. 依次克隆出虚拟机 masterslave01slave02,以虚拟机 master为例。

① 右击hadoop -> 管理 -> 克隆。

46

② 进入克隆界面。

47

③ 设置克隆源。

48

④ 设置克隆类型为“创建完整克隆”。

49

  • 完整克隆的虚拟机是通过复制原虚拟机创建完全独立的新虚拟机,不和原虚拟机共享任何资源,可以脱离原虚拟机独立使用。

  • 链接克隆的虚拟机需要和原虚拟机共享同一个虚拟磁盘文件,不能脱离原虚拟机独立运行。

⑤ 设置虚拟机的名称和位置。

50

⑥ 等待克隆。

51

⑦ 克隆完成,以下为刚克隆的虚拟机 master

52

请按以上步骤继续克隆虚拟机 slave01slave02

53

4. 配置网络

虚拟机名主机名IP
mastermaster192.168.121.160
slave01slave01192.168.121.161
slave02slave02192.168.121.162

网络整体规划如上表,请按照以下步骤配置网络。

  1. 进入虚拟网络编辑器。

54

  1. 获取管理员权限。

55

  1. 修改VMnet8的子网IP。

56

  1. 修改网关IP。

57

58

  1. 配置静态IP

以虚拟机 master 为例, slave01slave02 也要配置(除了第④步,其余步骤3个虚拟机都要执行)

① 启动虚拟机 master

② 打开终端,输入命令 su root 切换到root用户。

③ 输入命令vi /etc/NetworkManager/system-connections/ens160.nmconnection 进入配置文件ens160.nmconnection

59

③ 编辑配置文件ens160.nmconnectionipv4,修改为以下内容。

method=manual
address1=192.168.121.160/24,192.168.121.2
dns=114.114.114.114

60

虚拟机 slave01slave02 重复上述步骤,唯一的区别就是 address 不同。

slave01

method=manual
address2=192.168.121.161/24,192.168.121.2
dns=114.114.114.114

slave02

method=manual
address3=192.168.121.162/24,192.168.121.2
dns=114.114.114.114

④ 修改uuid(仅修改slave01、 slave02两个主机)

分别在 slave01 和 slave02 的终端输入以下命令。

sed -i '/uuid=/c\uuid='`uuidgen`'' /etc/NetworkManager/system-connections/ens160.nmconnection

uuid的作用是使分布式系统中的所有元素都有唯一的标识码。

61

⑤ 重启ens33网卡和重新加载网络配置文件。

nmcli c reload
nmcli c up ens160

62

⑥ 查看网络信息。(以 master 为例)

ip a

63

⑦ ping百度官网,检测网络。(以 master 为例)

ping www.baidu.com

64

输入ctrl+c退出检测。

65

5. 配置主机名

  1. master的终端输入hostnamectl set-hostname master 配置主机名。

66

  1. slave01的终端输入hostnamectl set-hostname slave01 配置主机名。

67

  1. slave02的终端输入hostnamectl set-hostname slave02 配置主机名。

68

执行以上命令后需要重新打开终端,才会更新主机名。

安装FinalShell

为什么要使用FinalShell,因为很方便。

按照以下步骤下载并安装 FinalShell

  1. 接受许可。

69

  1. 选择组件。

70

  1. 选择安装位置。

71

  1. 等待安装。

72

  1. 完成安装。

73

  1. 启动 FinalShell

74

远程登录虚拟机

按照以下步骤,使用FinalShell远程登录3台虚拟机。

  1. 新建SSH连接。(以 master主机为例)

75

  1. 使用密码连接。

76

  1. 重复以上步骤,新建 slave01slave02 的连接。

77

  1. 单击 masterslave01slave02 进行连接,接受并保存密匙。

78

  1. 连接成功。

79

接下来,我们就可以用 FinalShell 操作虚拟机了。

虚拟机的详细配置

包括配置映射文件、配置防火墙、配置免密登录等。

1. 配置映射文件

按照以下步骤配置映射文件。

  1. 在虚拟机 master 的终端输入命令 su root 进入管理员状态。

80

  1. 执行vi /etc/hosts命令进入映射文件 hosts

  2. hosts配置文件中添加以下内容。

192.168.121.160 master
192.168.121.161 slave01
192.168.121.162 slave02

81

  1. 在虚拟机 master 执行以下命令,将 hosts 文件拷贝配置到 slave01slave02
scp /etc/hosts root@slave01:/etc/hosts
scp /etc/hosts root@slave02:/etc/hosts

注意:在拷贝时需要输入slave01和slave02的管理员密码。

82

  1. 拷贝成功。

83

2. 配置防火墙

关闭虚拟机 masterslave01slave02 的防火墙。

分别在3台虚拟机中运行如下命令关闭防火墙并禁止防火墙开启启动(三台虚拟机都要切换到root状态)。

  • 关闭防火墙:systemctl stop firewalld
  • 禁止防火墙开机启动:systemctl disable firewalld

84

3. 配置免密登录

在集群环境中,主节点需要频繁的访问从节点,以获取从节点的运行状态,主节点每次访问从节点时都需要通过输入密码的方式进行验证,确定密码输入正确后才建立连接,这会对集群运行的连续性造成不良影响,为主节点配置SSH免密登录功能,可以有效避免访问从节点时频繁输入密码。接下来,虚拟机 master 作为集群环境的主节点实现SSH免密登录。

SSH免密登录原理(原理:非对称加密算法:公钥加密(给别人)、私钥解密给自己)

我们只需要实现master免密登录slave01slave02即可。

  1. 生成密钥

在虚拟机 master 中执行ssh-keygen -t rsa命令,生成密钥。(输入命令后一直按键盘的“enter”键即可)

85

  1. 查看秘钥文件

在虚拟机 master 中执行ll /root/.ssh命令查看密钥文件。

86

  1. 复制公钥文件

将虚拟机 master 生成的公钥文件复制到集群中相关联的所有虚拟机,实现通过虚拟机 master 可以免密登录虚拟机 masterslave01slave02

ssh-copy-id master
ssh-copy-id slave01
ssh-copy-id slave02

87

  1. 测试免密登录
ssh master
ssh slave01
ssh slave02

88

到此,成功配置免密登录。

写在后面

本文仅供学习使用,原创文章,请勿转载,谢谢配合。


http://www.ppmy.cn/ops/155366.html

相关文章

C# 装箱和拆箱(以及 as ,is)

装箱(Boxing)是指将值类型转换为引用类型的过程 拆箱(Unboxing)是将引用类型转换回值类型的过程。 int a 1;object b a; //装箱object obj 10;int num (int)obj; //拆箱ArrayList list new ArrayList();list.Add(123);//装箱…

告别页面刷新!如何使用AJAX和FormData优化Web表单提交

系列文章目录 01-从零开始学 HTML:构建网页的基本框架与技巧 02-HTML常见文本标签解析:从基础到进阶的全面指南 03-HTML从入门到精通:链接与图像标签全解析 04-HTML 列表标签全解析:无序与有序列表的深度应用 05-HTML表格标签全面…

python3+TensorFlow 2.x 基础学习(一)

目录 TensorFlow 2.x基础 1、安装 TensorFlow 2.x 2、TensorFlow 2.x 基础概念 2、1 Eager Execution 2、2 TensorFlow 张量(Tensor) 3、使用Keras构建神经网络模型 3、1 构建 Sequential 模型 3、2 编译模型 1、Optimizer(优化器&a…

ROS-SLAM

基本概念 SLAM 即 Simultaneous Localization and Mapping,中文名为同时定位与地图构建,是机器人、自动驾驶、增强现实等领域中的关键技术。 在未知环境中,搭载特定传感器的主体(如机器人、无人机等)在运动过程中&am…

精品PPT | 华为企业数据架构、应用架构及技术架构设计方法

这份PPT详细介绍了华为企业数据架构、应用架构及技术架构的设计方法。它涵盖了数据架构的五大原则,包括数据按对象管理、企业全局视角定义数据架构、遵从企业数据分类管理框架、概念实体结构化数字化以及数据服务化同源共享等,旨在确保数据在企业内的一致…

Chromium132 编译指南 - Android 篇(一):编译前准备

1. 引言 欢迎来到《Chromium 132 编译指南 - Android 篇》系列的第一部分。本系列指南将引导您逐步完成在 Android 平台上编译 Chromium 132 版本的全过程。Chromium 作为一款由 Google 主导开发的开源浏览器引擎,为众多现代浏览器提供了核心驱动力。而 Android 作…

【深度解析】DeepSeek-R1的五大隐藏提示词

LangChain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

webrtc协议详细解释

### 一、概述与背景 WebRTC(Web Real-Time Communication)最早由 Google 在 2011 年开源,旨在为浏览器与移动端应用提供客户端直连(点对点)方式进行实时音视频及数据传输的能力。传统的网络应用在进行高实时性音视频通…