图1.集群基础配置

Linux 集群基础配置全流程详解(网络 / 时钟 / SSH 免密 / JDK 部署)

在大数据、云计算等分布式场景中,集群基础环境配置是所有服务搭建的前置步骤,直接决定后续 Hadoop、Spark 等组件能否稳定运行。本文基于实战经验,梳理 Linux 集群标准化的 4 大核心配置步骤,全程可直接复制执行,帮你一次性搞定集群环境搭建。

一、环境准备说明

本文基于 CentOS 7 系统,以 3 节点集群(1 个 master 节点 + 2 个 slave 节点)为例,所有默认以root用户执行,所有节点均需执行。

                                                                      图2.网络配置


二、核心配置 1:网络配置

集群节点间必须保证网络互通、IP 固定,这是集群通信的基础。

1. 进入网络配置目录

cd /etc/sysconfig/network-scripts/
vi ifcfg-ens0

修改核心配置项(关键参数如下):

BOOTPROTO=static  # 静态IP,替换原有的dhcp
ONBOOT=yes        # 开机自启网卡
IPADDR=192.168.1.100  # 自定义静态IP(节点间IP需在同一网段)
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.2   # 网关(与宿主机/路由器网关一致)
DNS1=8.8.8.8          # DNS服务器

三、核心配置 2:时钟同步

分布式集群对时间一致性要求极高(如 HDFS、YARN 的心跳机制),必须保证所有节点时间误差在 1s 以内。

1. 安装 ntp 服务(若已安装可跳过)

yum install -y ntp

2. 启动 ntpd 服务并设置开机自启

# 启动服务
systemctl start ntpd
# 开机自启(CentOS7兼容chkconfig命令,也可使用systemctl enable ntpd)
chkconfig ntpd on
# 验证状态
systemctl status ntpd
# 验证时间同步
ntpq -p

四、核心配置 3:SSH 免密登录

SSH 免密是集群节点间无密码通信的关键,用于 Hadoop、Spark 等组件的节点间数据传输、脚本执行。

1. 生成密钥对(所有节点执行)

# 生成rsa密钥对(全程回车,无需设置密码)
ssh-keygen -t rsa
# 也可使用dsa算法,与图中一致:ssh-keygen -t dsa

执行后会在/root/.ssh/目录下生成两个文件:

  • id_rsa私钥(自己保留,不可泄露)
  • id_rsa.pub公钥(需要分发给其他节点)

2. 公钥合并(在 master 节点执行)

# 进入.ssh目录
cd /root/.ssh/
# 将本机公钥追加到authorized_keys文件(用于自身免密登录)
cat id_rsa.pub >> authorized_keys
# 再将slave1、slave2节点的公钥文件拷贝到master节点,执行追加:
# cat slave1_id_rsa.pub >> authorized_keys
# cat slave2_id_rsa.pub >> authorized_keys
# 也可使用图中命令:cp id_rsa.pub authorized_keys(仅单节点,多节点需合并)

                                                                 图2.网络配置

五、Linux 网络配置核心基础命令

先掌握这些高频命令,是排查网络问题、配置环境的基础,所有命令均基于 CentOS 7/8 系统验证,可直接复制执行。

1. 日常操作高频命令

表格

功能命令补充说明
清屏resetclear更彻底,可解决终端乱码问题
查看 IP 地址ifconfigCentOS 7 最小化安装默认无此命令,报错时执行yum install net-tools安装
查看主机名hostname快速查看当前系统主机名,用于集群节点区分
修改主机名hostnamectl set-hostname xxx永久修改主机名,无需重启即可生效(xxx为自定义主机名,如master
检查网络连通性ping www.baidu.com测试外网连通性,Ctrl+C终止 ping 命令

2. 临时联网命令

hdclient:部分教学环境 / 定制系统中用于快速临时联网的命令,可快速获取动态 IP,适合临时测试网络,生产环境不推荐使用,建议配置静态 IP。

六、虚拟机三大联网模式深度解析

VMware 等虚拟机软件提供 3 种核心联网模式,不同模式适用场景完全不同,新手最容易混淆,下面逐一拆解:

1. 桥接模式(Bridged)

  • 核心原理:虚拟机直接连接物理网络,相当于在物理交换机上新增一台独立设备,与宿主机处于同一网段
  • 特点
    • 虚拟机拥有独立的公网 / 局域网 IP,可被局域网内其他设备直接访问
    • 不依赖宿主机网络,只要物理网络通,虚拟机就能联网
    • 适合需要对外提供服务、局域网内多设备互访的场景
  • 缺点:IP 可能被 DHCP 分配冲突,需要手动配置静态 IP 避免问题

2. NAT 模式(Network Address Translation,网络地址转换)

  • 核心原理:虚拟机通过宿主机的网络进行地址转换上网,虚拟机网段与宿主机网段隔离,由虚拟机软件分配独立子网。
  • 特点
    • 无需手动配置 IP,默认自动获取,新手友好
    • 虚拟机不占用物理网段 IP,不会与局域网其他设备冲突
    • 仅宿主机可访问虚拟机,局域网其他设备无法直接访问
    • 最适合个人学习、单机测试场景(也是图中标注的重点模式)
  • 缺点:无法被外部设备直接访问,不适合生产环境集群部署

3. 仅主机模式(Host-Only)

  • 核心原理:虚拟机与宿主机组成独立的私有网络,完全隔离外网,仅宿主机与虚拟机、虚拟机之间可互访。
  • 特点
    • 绝对安全,无外网访问风险,适合生产环境内网集群
    • 仅用于虚拟机内部通信,无法访问外网
    • 适合搭建完全隔离的测试环境、生产内网集群缺点:默认无法联网,需额外配置才能访问外网、

                                                                       图3.虚拟机网络配置

无线环境下 Linux 虚拟机永久联网配置全攻略(桥接模式 + 静态 IP)

很多同学在笔记本无线环境下搭建 Linux 虚拟机时,总会遇到「重启就断网、IP 频繁变动、集群节点无法互通」的问题,核心原因就是没有正确配置桥接模式 + 静态 IP 永久联网。本文结合实战截图,手把手带你完成无线环境下虚拟机的永久联网配置,从模式选择到 DNS 配置,全程可直接落地,彻底解决无线环境下的网络痛点。

七、配置前的核心思路

无线环境下,我们的目标是让虚拟机像物理机一样,拥有固定的静态 IP,开机自动联网,且能和宿主机、局域网内其他设备互通,核心方案就是:

二、第一步:虚拟机网络模式正确配置(关键!)

很多新手桥接模式配置失败,就是因为模式选错了,我们先把虚拟机的网络适配器配置正确:

1. 打开虚拟机网络适配器设置

在 VMware 中,选中目标虚拟机 → 点击「编辑虚拟机设置」→ 找到「网络适配器」。

三、第二步:获取宿主机无线网卡的网络信息

配置静态 IP 前,必须先获取宿主机无线网卡的IP、子网掩码、网关、DNS,确保虚拟机的网络参数和宿主机完全匹配,这是无线环境下配置成功的核心。

1. 打开 Windows 命令提示符

按下Win+R,输入cmd,打开命令行窗口。

2. 执行命令查看完整网络信息

ipconfig /all

第三步:Linux 虚拟机静态 IP 永久配置(CentOS 7 为例)

拿到宿主机的网络信息后,我们在 Linux 中配置静态 IP,实现永久联网。

1. 进入网络配置目录

cd /etc/sysconfig/network-scripts/

2. 编辑网卡配置文件

vi ifcfg-ens33

3. 修改核心配置项(关键!)

# 1. 将BOOTPROTO从dhcp改为static(静态IP)
BOOTPROTO=static
# 2. 确保ONBOOT=yes(开机自启网卡)
ONBOOT=yes
# 3. 新增静态IP配置(和宿主机同网段,IP未被占用)
IPADDR=192.168.31.200  # 自定义,如宿主机是192.168.31.199,虚拟机可设为192.168.31.200
NETMASK=255.255.255.0  # 和宿主机子网掩码一致
GATEWAY=192.168.31.1   # 和宿主机默认网关一致
DNS1=192.168.31.1      # 和宿主机DNS服务器一致,也可填公共DNS如8.8.8.8

4. 重启网络服务,生效配置

# CentOS 7 重启网络
systemctl restart network
# 验证IP配置
ifconfig
# 验证网络连通性
ping www.baidu.com
# 验证宿主机互通
ping 宿主机IP

                                                         图4.zookeeper简介

一、ZooKeeper 到底是什么?

这句话拆解开来,其实包含了三个核心信息:

  1. 本质:它是一个开源的服务器程序,可以部署在多台服务器上组成集群
  2. 核心能力分布式协调,解决分布式系统中多节点协同的各种难题
  3. 核心特性高度可靠,保证在部分节点故障时,服务依然稳定可用

用大白话来说:ZooKeeper 就是分布式系统里的「大管家」,专门帮你解决多台服务器协同工作时的各种麻烦事,而且这个管家非常靠谱,几乎不会掉链子。


二、为什么分布式系统需要 ZooKeeper?

我们先想一个问题:如果只有一台服务器,我们需要 ZooKeeper 吗?答案是:完全不需要。单台服务器自己就能搞定所有事情,不存在「多节点协同」的问题。但一旦系统变成分布式架构(多台服务器组成集群),就会出现一堆单节点不存在的难题:

就像课件里说的:Solr(应用界大佬)和 Hadoop(大数据服务界大佬),都用 ZooKeeper 提供集群管理,足以见得它在分布式系统中的核心地位。

  • 集群里有多少台服务器活着?谁是主节点、谁是从节点?
  • 多个服务同时修改同一个数据,怎么保证不冲突?
  • 服务配置怎么统一管理?怎么让所有节点同步更新?
  • 分布式锁怎么实现?怎么保证多个节点的操作顺序?
  • 三、ZooKeeper 都被谁用了?

    正因为 ZooKeeper 解决了分布式系统的核心痛点,它已经成为大数据生态的「基础设施」,几乎所有主流框架都深度依赖它:

  • 大数据领域:Hadoop、HBase、Kafka、Storm、Flink 等,用它做集群管理、主从选举、配置同步
  • 搜索领域:Solr、Elasticsearch(早期版本),用它做集群节点管理、分布式锁
  • 微服务领域:Dubbo 等服务框架,用它做服务注册与发现
  • 中间件领域:HBase、Redis 集群,用它做主从选举、故障转移

八、总结

ZooKeeper 不是一个业务系统,而是分布式系统的基础设施。它的核心价值,就是把分布式系统中最复杂的「协调问题」标准化、组件化,让开发者不用再重复造轮子,专注于业务本身。

    更多推荐