当我们每个机器的时间都不一致时,假如有一个定时任务,定的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. DVWA(七):XSS(stored)存储型XSS攻击

    存储型XSS : 存储XSS,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在.提交JS攻击代码存储到数据库然后再输出. low: 观察源码: <?php if( isset( ...

  2. 二、create-react-app自定义配置

    这里主要讲解添加less  和  实现Antd按需加载 首选需要执行npm run eject 暴露所有内建的配置 ,这是后面所有配置的基础,这个必须优先执行! 一.实现Antd按需加载 按需加载插件 ...

  3. 使用SpringBoot + JavaMailSender 发送邮件报错 Mail server connection failed;Could not connect to SMTP host

    说明: 出于安全考虑,阿里云默认封禁 TCP 25 端口出方向的访问流量,无法在阿里云上的云服务器通过 TCP 25 端口连接外部地址. [官方提示]:如果您需要使用阿里云上的云服务器对外部发送邮件, ...

  4. Android ListView显示访问WebServices返回的JSON结果

    1.WebServices的返回结果 2.ListView内容布局代码 <?xml version="1.0" encoding="utf-8"?> ...

  5. DRF 序列化组件 模型层中参数补充

    一. DRF序列化 django自带有序列化组件,但是相比rest_framework的序列化较差,所以这就不提django自带的序列化组件了. 首先rest_framework的序列化组件使用同fr ...

  6. Leetcode_474. 一和零(二维01背包)

    每个字符串看成一个物品,两个属性是0和1的个数,转换为01背包. code class Solution { public: int w[605][2]; int dp[105][105]; int ...

  7. Hive常用的10个系统函数及作用

    聚合函数 函数处理的数据粒度为多条记录. sum()—求和 count()—求数据量 avg()—求平均直 distinct—求不同值数 min—求最小值 max—求最人值 分析函数 Analytic ...

  8. coding++ :在引入的css或者js文件后面加参数的作用

    前沿: 有些小伙伴们在页面(F12)直接对 JS.CSS 文件进行编辑.或者打断点调试的时候 可能会发现 所有的操作都不生效,为什么? 原因可能存在以下情况 有时候可能会遇到js或者css文件引用后传 ...

  9. .Net平台技术栈?不止于此

    首先援引一名工友几年前的文章:http://csharper.blog.51cto.com/3052247/1330022,结合当前微软技术领域及平台工具现状,文章有增改. .NET是个很大.很宽.很 ...

  10. Windows系统向Ubuntu传输文件

    PuTTY传输: 安装PuTTY,然后将PuTTY安装目录下的pscp.exe文件拷贝到/Windows/System32/目录下,在cmd控制台执行命令: # pscp 要传输的文件路径 ubunt ...