Hadoop集群时间同步NTP

一、集群时间同步介绍

当然要是图简单直接有xshell工具
Hadoop集群时间同步NTP_第1张图片
       时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。
Hadoop集群时间同步NTP_第2张图片

NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。


二、操作步骤

注意:这也是我自己以前出现的错误,自己在主节点安装并配置了ntp,还在从节点ntp安装并配置,每台节点都crontab -e定时配置时间同步。
其实只要在主节点配置安装配置ntp就行,然后在从节点配置crontab -e去定时同步主节点的时间即可

  1. 时间服务器配置(必须root用户)
    (1)检查安装:[root@HP111 ~]# rpm -qa | grep ntp
    ntp-4.2.6p5-28.el7.centos.x86_64
    ntpdate-4.2.6p5-28.el7.centos.x86_64
    (2)安装:[root@HP111 ~]# yum install ntp(有网,下载慢可以将CentOS7默认的源更换为ailiyun源)
    rpm -ivh ntp-4.2.6p5-18.el7.centos.x86_64.rpm(没网)
    若出现找不到依赖则使用下面的命令
    rpm -ivh ntp-4.2.6p5-18.el7.centos.x86_64.rpm --nodeps --force
    下载地址:http://www.ntp.org/downloads.html

  2. 修改ntp配置文件
    [root@HP111 ~]# vi /etc/ntp.conf
    修改内容如下
    (1)修改1(授权192.168.1.0-192.168.1.255网段上的所有机器可以从这台机器上查询和同步时间)
    #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    改为
    restrict 192.168.x.0 mask 255.255.255.0 nomodify notrap
    注意:这个网段必须是虚拟机的IP网段,你的网段不一定就是192.168.1.0
    (2)修改2(集群在局域网中,不使用其他互联网上的时间)
    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 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
    (3)添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    (4)修改/etc/sysconfig/ntpd 文件
    [root@HP111 ~]# vi /etc/sysconfig/ntpd
    增加内容如下(让硬件时间与系统时间一起同步)
    SYNC_HWCLOCK=yes
    (5)重新启动ntpd服务
    注意:CentOS7和CentOS6命令不同
    CentOS6用的是:
    [root@HP111 ~]#service ntpd status 查看状态
    [root@HP111 ~]#service ntpd start 启动 ntpd服务
    CentOS7用的是:
    [root@HP111 ~]# systemctl status ntpd.service 查看状态
    [root@HP111 ~]# systemctl start ntpd.service 启动 ntpd服务

    (5)设置ntpd服务开机启动
    [root@HP111 ~]# chkconfig ntpd on (CentOS6)
    [root@HP111 ~]# systemctl enable ntpd.service(CentOS7)
    2. 只需要其他机器配置(必须root用户)其他机器也就是从节点
    (1)在其他机器配置10分钟与时间服务器同步一次
    [root@HP112 ~]# crontab -e
    [root@HP113 ~]# crontab -e
    编写定时任务如下:
    每十分钟向主节点同步一次
    */10 * * * * /usr/sbin/ntpdate HP111
    格外注意: 本次实验是CentOS7,我对着网上视频教程试N遍(视频老师用CentOS6),最后在凌晨1:30才发现这个错误(比较笨,如果不那么急急忙忙看清楚错误应该早一点解决)
    CentOS7没有预装ntpdate,导致一直没有时间同步,后来我在从节点安装了ntpdate就完美解决.
    对了,防火墙也要关闭.

    从节点安装ntpdate: yum install ntpdate
    (2)修改任意机器时间
    [root@HP113 ~]# date -s 2017-9-5
    (3)十分钟后查看机器是否与时间服务器同步
    [root@HP113 ~]# date
    说明:测试的时候可以将10分钟调整为1分钟,节省时间。

你可能感兴趣的:(Linux,大数据学习)