当前位置: 首页 > news >正文

大数据集群环境搭建(Ubantu)

目录

单机、分布式、集群简介

单机模式

分布式模式

集群模式

负载均衡解释

集群架构

集群环境搭建

修改主机名和IP

主机名和IP映射配置

关闭防火墙服务

集群机器之间实现免密登录

集群时间同步


​​​​​​​单机、分布式、集群简介

单机模式

所有业务都集成在一台服务器上面。

分布式模式

多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。

(多台服务器集中在一起,每台服务器都实现总体中的不同业务。)

集群模式

多台不同的服务器中部署相同应用或服务模块,构成集群,通过负载均衡设备对外提供服务

(将分布式模式分出的单个业务又由多台服务器来做,多台服务器在一起做同样的事。)

负载均衡解释

将网络流量或计算任务合理地分配到多个服务器、进程或 资源上,以避免单一节点过载。解决集群模式的服务器分配问题,让用户的请求合理分配到不同服务器上。

集群架构

主从架构

主角色:master、leader

从角色:slave、follwer

主从角色各司其职,需要共同配合对外提供服务,常见一主多从

主备架构

主角色:active

备角色:standby

主要解决单点故障问题,保证业务的持续可用性,常见一主一备,也可一主多备

集群环境搭建

修改主机名和IP

为什么要这么做?

确保集群网络的稳定性和可管理性

注意:集群中的虚拟机都要设置,网关一致,DNS一致,静态IP网段必须一致但最后一段数字必须不一致。

ok,开始修改↓↓↓

修改主机名(命令修改只能临时生效,重启无效,需修改配置文件重启可永久生效)

sudo vim /etc/hostname

这里我的主机名分别为node1和node2

修改成静态IP
①进入到文件中

cd /etc/netplan/   (ubantu18以上)
sudo vim 01-network-manager-all.yaml

②修改成以下内容(严格缩进

network:version: 2renderer: networkd  # 或者使用 NetworkManager,图形界面下推荐使用 NetworkManagerethernets:ens33:  # 你的网卡名称,根据实际情况修改dhcp4: no  # 关闭 IPv4 动态分配,设置为静态addresses: [192.168.88.100/24]  # 你想要设置的静态 IP 地址和子网掩码,/24 表示子网掩码为 255.255.255.0,IP 地址要确保和局域网内其他设备不冲突gateway4: 192.168.88.2  # 网关地址,根据实际情况修改nameservers:addresses: [8.8.8.8, 114.114.114.114]  # DNS 服务器地址,可使用公共 DNS,也可以使用你所在网络提供的 DNS

③使配置生效并检查

sudo netplan apply  #让配置生效

查看网卡名称和ip地址(一个静态ip,一个动态ip):ip addr   

查看网关地址:ip route

测试外部网络 DNS 解析和连通性:ping www.baidu.com

④完成集群中所有虚拟机的修改后,测试节点间的连通性

测试节点间通信:执行 ping 192.168.88.100(我的node2 的 IP)

主机名和IP映射配置

为什么要这么做?

集群节点间能通过主机名通信

没配置也能通过主机名通信?

手动配置 /etc/hosts 文件是一种通用且标准的做法,不受网络环境变化、虚拟机软件变动等因素影响。不管是在校园网、公司内网,还是其他网络环境下,只要在每台虚拟机的 /etc/hosts 文件中正确添加所有节点的主机名与 IP 映射,就能确保集群内节点始终可以通过主机名进行稳定通信。所以从稳定性和兼容性考虑,建议手动配置。

ok,开始配置↓↓↓

①进入文件中

sudo vim /etc/hosts

②添加主机名与 IP 映射(同样,集群中的虚拟机都需要配置)

192.168.88.100 node2

192.168.88.101 node1

(通常添加在文件末尾)

③验证

ping node2   #ping 主机名

#④如果在Windows上做开发,也需要修改hosts文件

目录C:\Windows\System32\drivers\etc 下的hosts文件,添加主机名与IP映射(第②步)

(通常放在所有配置的最前面)

关闭防火墙服务

为什么要这么做?

关闭ufw:大数据集群(如 Hadoop、Spark)的节点间需要通过大量端口进行通信,而防火墙会默认拦截集群内节点间的端口通信,使通信受阻。

为了方便使用者快速搭建环境,避免因为防火墙拦截导致的网络通信问题,很多学习用途的镜像都会预先关闭防火墙,学习者不需要再操作。

关闭SElinux:SELinux 默认的安全策略可能会限制这些操作,导致组件无法正常访问所需的资源,进而使集群启动失败或者功能异常

Ubantu系统 默认是不安装 SELinux 的,一般不需要专门去关闭它

ok,开始关闭↓↓↓

①查看防火墙状态

sudo ufw status   # ufw是ubantu常用防火墙工具

②彻底禁用防火墙服务(防止重启后自动开启)

#临时关闭(立即生效,重启后恢复),但我们暂时需要彻底关闭
sudo ufw disable

# 停止防火墙服务
sudo systemctl stop ufw
# 禁止开机自启
sudo systemctl disable ufw

集群机器之间实现免密登录

原理

操作(主机自己和自己也需要打通免密登录)

ssh 主机名

#yes

了解跳板机(堡垒机):作用是提高安全性

跨机远程拷贝文件

# 本地文件 拷贝到 远程机器
scp [本地文件路径] [远程用户]@[远程IP或主机名]:[远程目标路径]

# 远程文件 拷贝到 本地
scp [远程用户]@[远程IP或主机名]:[远程文件路径] [本地目标路径]

例:scp -r /home/hadoop/data hadoop@node2:/home/hadoop/ # 拷贝整个 data 目录

集群时间同步

为什么要这么做?

在大数据集群中,时间同步非常重要,因为很多组件的日志记录、任务调度等功能都依赖准确一致的时间。如果集群中各节点时间不一致,可能会导致数据不一致、任务调度失败等问题。
常用的时间同步工具是ntp(Network Time Protocol,网络时间协议)

ok,开始配置↓↓↓

①安装ntp服务

sudo apt-get update

sudo apt-get install ntp

②配置ntp服务器

#打开ntp的配置文件/etc/ntp.conf

sudo vim /etc/ntpsec/ntp.conf
#在文件中添加或修改server行,指定要同步的时间服务器,例如使用阿里云的公共 NTP 服务器

server ntp.aliyun.com iburst

③重启ntp服务

sudo systemctl restart ntp

④验证时间同步

#可以使用ntpq -p命令查看 ntp 服务器的连接状态和同步情况

ntpq -p

http://www.dtcms.com/a/452798.html

相关文章:

  • 深入浅出 HarmonyOS 应用开发:ArkTS 语法精要与实践
  • 用 Python+OpenCV 实现实时文档扫描:从摄像头捕捉到透视矫正全流程
  • 普陀做网站公司任丘市建设局网站
  • 前端框架篇——VueReact篇
  • R语言从入门到精通Day4之【数据结构】
  • JavaScript快速入门_javascript入门教程
  • 有几家做网站的公司易贝跨境电商平台
  • 基于websocket的多用户网页五子棋(六)
  • 月光与饼:Python 爱情月饼可视化
  • 【C++】STL有序关联容器的双生花:set/multiset 和 map/multimap 使用指南
  • 迷你论坛项目
  • 【C++STL】一文掌握 String 核心接口:从基础到实用!
  • 长沙宁乡建设网站网站本地环境搭建
  • 从以太网到多个 CAN 网络的网关
  • 网站做弹窗怀化职院网站
  • ros2 功能包 package.xml 结构详细解释
  • ros2 功能包 CMakeLists.txt 结构详细解释
  • 【Python】小练习-考察变量作用域问题
  • YOLO算法原理详解系列 第007期-YOLOv7 算法原理详解
  • 【C++贪心】P8087 『JROI-5』Interval|普及+
  • C++知识点总结用于打算法
  • 【算法】二分查找(一)朴素二分
  • 干货>肉夹馍词嵌入方案(embedding方案),适合资源受限、要求可解释、领域边界清晰的应用场景
  • PDML 不能和rebuild partition index同时运行
  • 网站目录管理模板做一个网站一般要多少钱
  • 对于力扣2025,10,7的每日的一点反思(非递归并查集写法)
  • Elasticsearch、OpenSearch 与 Easysearch:三代搜索引擎的演化与抉择
  • 以人为本视角下定制开发开源AI智能名片S2B2C商城小程序的营销价值与实践路径
  • AI智能体(Agent)大模型入门【5】--本地AI模型连接到PyCharm或者编译软件使用
  • INT305 Machine Learning 机器学习 Pt.3二元分类和多类分类