大数据集群环境搭建(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

相关推荐
私域实战笔记2 小时前
选企业微信服务商哪家好?从工具适配与行业案例看选型逻辑
大数据·人工智能·企业微信
AI企微观察2 小时前
企业微信社群运营玩法有哪些?企业微信社群工具有哪些功能?——从拉新到留存的玩法设计与工具支撑
大数据·人工智能
金融小师妹4 小时前
OpenAI拟借AI估值重构浪潮冲击1.1万亿美元IPO——基于市场情绪因子与估值量化模型的深度分析
大数据·人工智能·深度学习·1024程序员节
wudl55665 小时前
Flink Keyed State 详解之二
大数据·flink
IT学长编程5 小时前
计算机毕业设计 基于Python的热门游戏推荐系统的设计与实现 Django 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·python·django·毕业设计·课程设计·毕业论文
Ashlee_code6 小时前
什么是TRS收益互换与场外个股期权:从金融逻辑到系统开发实践
大数据·人工智能·python·金融·系统架构·清算·柜台
人大博士的交易之路6 小时前
龙虎榜——20251031
大数据·数学建模·数据分析·缠论·缠中说禅·龙虎榜·道琼斯结构
科海思 132-6O59 69256 小时前
矿泉水除溴化物的解决方案
大数据·运维
深鱼~6 小时前
从本地存储到全球访问:1Panel的家庭服务器革命
大数据·运维·服务器
档案宝档案管理9 小时前
打破数据孤岛:制造行业档案管理方案如何实现数据互通与协同?
大数据·档案·档案管理