大数据集群环境搭建(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: 2
  renderer: networkd  # 或者使用 NetworkManager,图形界面下推荐使用 NetworkManager
  ethernets:
    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

相关推荐
汤姆yu几秒前
面向具身智能的物理视频模拟器:蚂蚁灵波LingBot-Video开源模型全解析
java·大数据·人工智能·gpt·开源·大模型·音视频
一枚NPC4 分钟前
Timbal AI 音乐创作与商业应用实战指南
大数据·人工智能·机器学习
Daorigin_com4 分钟前
合同管理进入“自动驾驶”时代:道本×DeepSeek的三重穿透
大数据·人工智能·深度学习·数据挖掘·数据库开发·业界资讯·改行学it
泰和英杰17 分钟前
2026华为数字能源实操考点迭代:数据中心与光伏储能通用排错方法论
大数据
QiLinkOS23 分钟前
企业知识产权战略的“X光”透视报告:从“外包代工”到“法律军火库”的终极分野
大数据·人工智能·dna双螺旋归因模型·技术专利避坑指南·qilink·技术专利风险情报·技术专利洞察
IT新视界10 小时前
大数据开发工具-Transwarp Data Studio
大数据
donoot10 小时前
Linux系统下图书馆级电子书全自动标准化分类整理完整实施方案
大数据·linux·运维·电子书管理
Elastic 中国社区官方博客11 小时前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
xixixi7777712 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策
imbackneverdie13 小时前
AI4S不止于分子药物:以MedPeer为代表的科研基建打开产业新增量
大数据·人工智能·算法·aigc·科研·学术·ai 4s