欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大数据环境部署——集群时间同步

程序员文章站 2022-06-03 08:40:34
...

大数据环境部署——集群时间同步

所谓集群时间同步,简单点来说,就是选定一台服务器(一般选择NameNode所在的服务器)作为时间服务器,集群上的其它所有机器都与这台时间服务器进行定时同步。
其中,会涉及到相关crontab命令。可以参考:Linux常用命令——crontab的简单使用
下面的所有操作均使用root用户。

关闭各节点防火墙

## 查看防火墙状态
[[email protected] ~]# systemctl status firewalld
## 关闭防火墙
[[email protected] ~]# systemctl stop firewalld
##禁止防火墙开机启动
[[email protected] ~]# systemctl disable firewalld

检查各节点是否安装ntp

给所有需要做时间同步的服务器安装ntp,这里以hadoop02为例

[[email protected] ~]# rpm -qa|grep ntp
[[email protected] ~]# yum -y install ntp
## 安装之后再次查看
[[email protected] ~]# rpm -qa|grep ntp
ntpdate-4.2.6p5-28.el7.centos.x86_64
ntp-4.2.6p5-28.el7.centos.x86_64

选定时间服务器

选定一个服务器作为时间服务器,这里选择NameNode所在的服务器(hadoop02)作为时间服务器。

修改ntp配置文件

文件位置为/etc/ntp.conf

改动一:授权该网段上的所有机器都可以从时间服务器查询和同步时间

以本集群为例,hadoop02的IP地址为192.168.10.11,hadoop03的IP地址为192.168.10.12,hadoop04的IP地址为192.168.10.13。
这里我们授权192.168.10.0-192.168.10.255网段上的所有机器都可以从时间服务器查询和同步时间。这里的网段以实际情况为准。

##改动前
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
##改动后
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap

改动二:集群在局域网中,不使用其它互联网上的时间

直接将互联网上的时间配置注释掉即可。

## 改动前
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
## 改动后
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst

改动三:当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其它节点提供时间同步

在实际使用中,可能会出现节点网络连接丢失的情况,这个时候我们可以以本地时间作为时间服务。这里直接在配置文件末尾添加下面的配置即可。

## 这里stratum后面的10表示等级
server  127.127.1.0
fudge   127.127.1.0 stratum 10

修改/etc/sysconfig/ntpd文件

在文件末尾新增下面的配置,这里是为了让硬件时间与系统时间一起同步。

SYNC_HWCLOCK=yes

重新启动ntpd服务,并设置ntpd服务开机启动

## 查看服务ntpd状态
[[email protected] ~]# systemctl status ntpd.service
## 打开服务
[[email protected] ~]# systemctl start ntpd.service
## 设置服务开机启动
[[email protected] ~]# systemctl enable ntpd.service

其它节点操作

设置定时任务

以每1分钟进行一次时间同步操作为例。定时任务内容如下(事先配置好主机名与IP地址对应关系)

## 编辑定时任务
[[email protected] ~]# crontab -e
## 定时任务内容
[[email protected] ~]# crontab -l
*/1 * * * * /user/sbin/ntpdate hadoop02
## 重启服务
[[email protected] ~]# systemctl restart crond.service

简单测试

修改hadoop03和hadoop04节点上的时间,等待一分钟之后,查看时间是否同步。

[[email protected] ~]# date -s '2011-01-01 11:11:11'
2011年 01月 01日 星期六 11:11:11 CST
[[email protected] ~]# date -s '2012-12-12 12:12:12'
2012年 12月 12日 星期三 12:12:12 CST
## 等待一分钟之后再次查看时间
[[email protected] ~]# date
2019年 08月 18日 星期日 12:32:39 CST
[[email protected] ~]# date
2019年 08月 18日 星期日 12:32:44 CST

符合预期!!!

注意事项

只在时间服务器上启动ntpd服务,在其它节点不要启动ntpd服务。