在 Linux 系统(如 CentOS、RedHat 等)环境下,尤其是进行 Hadoop 等分布式系统部署时,防火墙、SELinux 以及时间同步的配置至关重要。不合适的防火墙规则或 SELinux 策略可能会阻碍服务间的通信,而时间不同步则会导致分布式系统出现各种异常。下面详细介绍如何高效、准确地完成这些配置。

一、关闭防火墙(每台机器都执行)

防火墙可能会拦截系统间的网络通信,对于测试环境或集群内部通信,可先关闭防火墙。

1. 停止防火墙服务:

使用 systemctl 命令停止防火墙服务,执行:

systemctl stop firewalld

2. 禁用防火墙开机自启:

为了防止系统重启后防火墙自动开启,执行:

systemctl disable firewalld

执行成功后,会显示类似“Removed /etc/systemd/system/multi-user.target.wants/firewalld.service”等提示信息,表明防火墙服务已被停止且禁用自启。(如下图)

记得每台机器都需要执行,不要遗漏

如果有跟着我上篇任务做的,这里记得不要忘记切换到root

su - root

二、关闭 SELinux

SELinux(安全增强型 Linux)是一种强制访问控制安全系统,在某些情况下可能会限制进程对资源的访问,影响服务运行,所以也需要关闭。

1. 临时关闭 SELinux:

执行命令将 SELinux 设为宽容模式(临时生效,系统重启后失效):

setenforce 0

2. 永久关闭 SELinux:

编辑 /etc/selinux/config 文件,将 SELINUX 的值改为 disabled,执行:

vi /etc/selinux/config

在文件中找到 SELINUX=enforcing 这一行,修改为:

SELINUX=disabled

保存并退出文件(在 vi 中按 Esc,然后输入 :wq 回车)。修改后需要重启系统才能永久生效。

大概位置在这里~

 

三、时间同步(依旧也是三台机器都执行哦~)

分布式系统中,各节点时间同步非常重要,这里使用 chrony 工具(CentOS 8 及以上推荐使用,若使用 CentOS 7 也可使用 ntp,步骤类似)来实现时间同步。chrony是NTP(Network Time Protocol)的一个高性能替代品,用于保持系统时钟与时间服务器的同步。以下是详细的操作步骤:

1. 检查系统时间

在开始配置时间同步之前,可以先查看当前系统时间,确认是否需要同步。使用以下命令查看当前系统时间和时区:

date
timedatectl

2. 安装chrony

CentOS 9默认软件源中包含chrony,可以直接使用dnf包管理器进行安装:

sudo dnf install -y chrony

3.可能需要换源

执行 sudo dnf install -y chrony 命令安装 chrony 软件时出现了错误。错误提示表明在下载 baseos 仓库的元数据时失败,原因是无法连接到 mirrors.centos.org 服务器

解决方法

3.1. 检查网络连接:

首先确认系统是否能正常连接网络。可以使用 ping 命令测试网络连通性,比如 ping www.baidu.com,如果无法 ping 通,说明网络存在问题,需要排查网络配置(如 IP 地址、网关、DNS 等)。

3.2. 更换软件源:

由于 CentOS Stream 的官方源可能存在访问问题,或者当前网络环境下官方源不可用,可以更换为国内的镜像源(如阿里云、网易等的 CentOS Stream 镜像源)。

• 备份原有源配置文件:

sudo mv /etc/yum.repos.d/CentOS-Stream.repo /etc/yum.repos.d/CentOS-Stream.repo.bak

• 下载阿里云的 CentOS Stream 9 源配置文件:

sudo curl -o /etc/yum.repos.d/CentOS-Stream.repo https://mirrors.aliyun.com/repo/CentOS-Stream-9.repo

• 清除并生成新的缓存:

sudo dnf clean all
sudo dnf makecache

3.3. 再次尝试安装:

完成上述操作后,再次执行 sudo dnf install -y chrony 命令,看是否能成功安装。

4. 启动和设置开机自启

安装并配置好chrony后,启动chrony服务,并设置为开机自启:

sudo systemctl start chronyd
sudo systemctl enable chronyd


5. 手动同步时间

可以手动触发一次时间同步,以确保系统时间尽快与时间服务器同步:

sudo chronyc -q 'server ntp.aliyun.com iburst'
sudo chronyc -q 'initstepslew'

6. 检查时间同步状态

使用以下命令检查chrony的同步状态:

chronyc sources -v
timedatectl

 

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐