当我们每个机器的时间都不一致时,假如有一个定时任务,定的10点启动执行。结果namenode十点了启动任务,可是分配到的执行节点DataNode才九点五十导致任务执行失败怎么办?
这就需要将机器之间的时间保持一致

时间同步方式:找一台机器,作为时间服务器,所有的机器与这台机器的时间进行同步,如每隔十分钟同步一次。

操作

切换到root用户检查是否安装了ntp

我们以102作为我们的时间主机,向其他机器发布同步时间

[shaozhiqi@hadoop102 ~]$ su root
Password:
[root@hadoop102 shaozhiqi]# rpm -qa|grep ntp
ntp-4.2.6p5-25.el7.centos.2.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
ntpdate-4.2.6p5-25.el7.centos.2.x86_64
python-ntplib-0.3.2-1.el7.noarch
[root@hadoop102 shaozhiqi]#查

编辑ntp的配置文件

我里面带//的注释在配置时应该删除,这里为了方便说明

[root@hadoop102 shaozhiqi]# vim /etc/ntp.conf
# Hosts on local network are less restricted.
#授权所有机器可以从这台机器上获取时间同步
restrict 192.168.1.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](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 //我们操作注掉
//添加节点,当上述机器的丢失网略,还可以作为集群的时间同步机器
server 127.127.1.0
fudge 127.127.0 stratum 10

修改/etc/sysconfig/ntpd,让硬件时间和系统时间一起同步,加上保险些

[root@hadoop102 ~]# vim /etc/sysconfig/ntpd
# Command line options for ntpd
OPTIONS="-g"
SYNC_HWCLOCK=yes

重启102的时间同步

先查看状态是 Active: inactive (dead)

[root@hadoop102 ~]# service ntpd status
Redirecting to /bin/systemctl status ntpd.service
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@hadoop102 ~]#

启动后台查看状态是Active: active (running)

[root@hadoop102 ~]# service ntpd status
Redirecting to /bin/systemctl status ntpd.service
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2019-06-29 11:33:51 CST; 12s ago
Process: 3174 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 3176 (ntpd)
CGroup: /system.slice/ntpd.service
└─3176 /usr/sbin/ntpd -u ntp:ntp -g
Jun 29 11:33:51 hadoop102 ntpd[3176]: Listen normally on 2 lo 127.0.0.1 UDP 123
Jun 29 11:33:51 hadoop102 ntpd[3176]: Listen normally on 3 eth0 192.168.1.102 UDP 123
Jun 29 11:33:51 hadoop102 ntpd[3176]: Listen normally on 4 virbr0 192.168.122.1 UDP 123
Jun 29 11:33:51 hadoop102 ntpd[3176]: Listen normally on 5 lo ::1 UDP 123
Jun 29 11:33:51 hadoop102 ntpd[3176]: Listen normally on 6 eth0 fe80::250:56ff:fe3a:7b92 UDP 123
Jun 29 11:33:51 hadoop102 ntpd[3176]: Listening on routing socket on fd #23 for interface updates
Jun 29 11:33:51 hadoop102 ntpd[3176]: 0.0.0.0 c016 06 restart
Jun 29 11:33:51 hadoop102 ntpd[3176]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
Jun 29 11:33:51 hadoop102 ntpd[3176]: 0.0.0.0 c011 01 freq_not_set
Jun 29 11:33:52 hadoop102 ntpd[3176]: 0.0.0.0 c514 04 freq_mode
[root@hadoop102 ~]#

设置永久启动

[root@hadoop102 ~]# chkconfig ntpd on
Note: Forwarding request to 'systemctl enable ntpd.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@hadoop102 ~]#

102机器配置结束

配置103/104 在root用户

其他机器每隔10分支与时间服务器同步一次
crontab –e 表示要去编写crate脚本,e代表编辑
103机器

[root@hadoop103 ~]# crontab -e
no crontab for root - using an empty one
*/10 * * * * /usr/sbin/ntpdate hadoop102

104 机器

[root@hadoop104 ~]# crontab -e
no crontab for root - using an empty one
*/10 * * * * /usr/sbin/ntpdate hadoop102

配置结束

验证

修改时间语法:date -s "2019-6-28 10:10:10"//表示修改当前机器的时间点为某个时间
验证:修改103的时间,今天是29号我们改为28号,看等会会不会同步

 [root@hadoop103 ~]# date
Sat Jun 29 11:52:44 CST 2019
[root@hadoop103 ~]# date -s "2019-6-28 10:10:10"
Fri Jun 28 10:10:10 CST 2019
[root@hadoop103 ~]# date
Fri Jun 28 10:10:18 CST 2019
[root@hadoop103 ~]#

验证:同样修改104的时间,今天是29号我们改为28号,看等会会不会同步

[root@hadoop104 ~]# date
Sat Jun 29 11:53:50 CST 2019
[root@hadoop104 ~]# date -s "2019-6-28 10:10:10"
Fri Jun 28 10:10:10 CST 2019
[root@hadoop104 ~]# date
Fri Jun 28 10:10:15 CST 2019
[root@hadoop104 ~]#

验证结果:103

[root@hadoop103 ~]# date
Fri Jun 28 10:10:18 CST 2019
[root@hadoop103 ~]# date
Sat Jun 29 11:55:42 CST 2019
[root@hadoop103 ~]#

验证结果:104

[root@hadoop104 ~]# date
Fri Jun 28 10:10:15 CST 2019
[root@hadoop104 ~]# date
Sat Jun 29 11:56:19 CST 2019
[root@hadoop104 ~]#

配置成功 O(∩_∩)O哈哈~

如何使用npt结合crontab实现集群之间的时间同步的更多相关文章

  1. Linux集群部署自定义时间同步服务器(ntpd)

    Linux集群部署自定义时间同步服务器(ntpd) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为一名运维人员,在搭建集群的时候,第一步需要做的就是同步每个机器的时间,尤其是在 ...

  2. 在不同版本号hdfs集群之间转移数据

    在不同版本号hdfs集群之间转移数据     最简单的办法就是把src集群的数据导到本地,然后起还有一个进程将本地数据传到des集群上去. 只是这有几个问题: 效率减少 占用本地磁盘空间 不能应付实时 ...

  3. 面向接口编程实现不改代码实现Redis单机/集群之间的切换

    开发中一般使用Redis单机,线上使用Redis集群,因此需要实现单机和集群之间的灵活切换 pom配置: <!-- Redis客户端 --> <dependency> < ...

  4. DistCp 集群之间数据拷贝工具

    DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具.可以将数据拷贝到另个一集群,也可以将另一个集群的数据拷贝到本集群.

  5. 集群之间配置 SSH无密码登录

    集群之间配置 SSH无密码登录 配置 ssh (1)基本语法 ssh 另一台电脑的 ip 地址 (2)ssh 连接时出现 Host key verification failed 的解决方法 # ss ...

  6. elasticsearch基于RBAC认证和集群之间的TLS通讯

    elasticsearch基于RBAC认证和集群之间的TLS通讯 一.背景 二.需要解决的问题 三.给es增加用户名和密码访问 1.修改config/elasticsearch.yml 2.访问es集 ...

  7. Hadoop集群搭建中时间同步步骤

        一.设置主节点时间服务器的时区     二.在每一个节点上检查是否安装时间服务ntp     三.在主节点上配置时间同步的相关文件     四.在其他从节点上配置与主节点时间同步的脚本 一.设 ...

  8. shell 脚本实战笔记(3)--集群机器的时间同步设置

    背景: 有些分布式服务(比如HBase服务), 依赖于系统时间戳, 如果集群各个节点, 系统时间不一致, 导致服务出现诡异的情况. 解决方案: 那如何同步集群各个节点之间的时间? 采用NTP(Netw ...

  9. Linux集群配置ntp时间同步服务

    集群中时间不同步有可能会让大数据的应用程序运行混乱,造成不可预知的问题,比如Hbase,当时间差别过大时就会挂掉,所以在大数据集群中,ntp服务,应该作为一种基础的服务,以下在演示在CentOS 7. ...

随机推荐

  1. MySql锁与InnoDB引擎

    MySql锁与InnoDB引擎 mysql的锁是面试中很高频问题,也是我们在日常开发中经常会遇到但是我们并没有注意到的地方.我把我自己理解的锁通过本篇博文分享出来,由于锁需要结合事务来理解,本文只介绍 ...

  2. 大数据软件安装之ZooKeeper监控

    一.ZooKeeper安装 官方文档: https://zookeeper.apache.org/doc/r3.5.5/zookeeperStarted.html 1.解压分发 [test@hadoo ...

  3. Contest 161

    2019-11-03 20:35:18 总体感受:本周的赛题完全是反过来的,第一题最难,第二题次之,最后的hard反而是最简单的. 注意点:心态放平稳,慢慢来.

  4. [贪心,dp] Educational Codeforces Round 71 (Rated for Div. 2) C. Gas Pipeline (1207C)

    题目:http://codeforces.com/contest/1207/problem/C   C. Gas Pipeline time limit per test 2 seconds memo ...

  5. MySQL datetime类型详解

    研发反馈问题,数据库中datetime数据类型存储的值末尾会因四舍五入出现不一致数据,影响查询结果,比如:程序中自动获取带毫秒精度的日期'2019-03-05 01:53:55.63',存入数据库后变 ...

  6. K折-交叉验证

    k-折交叉验证(k-fold crossValidation):在机器学习中,将数据集A分为训练集(training set)B和测试集(test set)C,在样本量不充足的情况下,为了充分利用数据 ...

  7. 150+行Python代码实现带界面的数独游戏

    150行代码实现图形化数独游戏 Github地址,欢迎各位大佬们fork.star啥的,感谢: 今天闲着没事干,以前做过html+js版的数独,这次做个python版本的,界面由pygame完成,数独 ...

  8. MATLAB——文件读写(2)

    一.importdata函数 1. txt 如图,提取经纬度. 程序如下 clear all test=importdata('经纬度.txt'); [r,c]=size(test.data);%ro ...

  9. 四、【Docker笔记】Docker容器

    容器是Docker的另一个核心概念,容器就是镜像的一个运行实例,只是它具有一个可写的文件层,而镜像是一个只读的文件. 一.创建容器 1.新建容器 我们可以使用 docker create 命令来创建一 ...

  10. (3)SQL Server表分区

    1.简介 当一个表数据量很大时候,很自然我们就会想到将表拆分成很多小表,在执行查询时候就到各个小表去查,最后汇总数据集返回给调用者加快查询速度.比如电商平台订单表,库存表,由于长年累月读写较多,积累数 ...