Hadoop 集群搭建

Hadoop 集群搭建

1. Hadoop 运行环境准备

1.1 模板虚拟机环境准备

安装模板虚拟机,IP 地址为 192.168.50.100,主机名称 hadoop 100、内存 4G、硬盘 50G。

1)安装以下工具(有则跳过):

[root@hadoop100 ~]# yum install -y net-tools
[root@hadoop100 ~]# yum install -y vim
[root@hadoop100 ~]# yum install -y epel-release
  • 工具说明
    • net-tools:网络工具,如 ifconfig
    • vim:文本编辑工具
    • epel-release:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方repository 中是找不到的。

2)设置静态 ip 与主机名

  • 静态 ip vmware 和 windows 上相关修改参考:Vmware 网络配置
  • 配置 ip:vim /etc/sysconfig/network-scripts/ifcfg-ens33
# ...
BOOTPROTO="static"
IPADDR=192.168.50.102
GATEWAY=192.168.50.2
DNS1=192.168.50.2
DNS2=8.8.8.8

注:保证 Linux 系统 ifcfg-ens33 文件中 GATEWAY、DNS 地址 与 虚拟网络编辑器 和 Windows 系统 VM8 相同。

  • 修改主机名
[root@hadoop100 ~]# vim /etc/hostname 
hadoop100
  • 配置 Linux 主机名称映射 hosts 文件(包括将要克隆的机器),使用 vim /etc/hosts 添加以下内容
192.168.50.100 hadoop100 
192.168.50.101 hadoop101 
192.168.50.102 hadoop102 
192.168.50.103 hadoop103 
192.168.50.104 hadoop104
192.168.50.105 hadoop105 
192.168.50.106 hadoop106 
192.168.50.107 hadoop107 
192.168.50.108 hadoop108

注:同时需要将这些映射加到 windows 的 hosts 中

3)关闭防火墙,关闭防火墙开机自启(必须以 root 用户)

[root@hadoop100 ~]# systemctl stop firewalld 
[root@hadoop100 ~]# systemctl disable firewalld.service

注:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙。

4)创建普通用户,并修改密码

[root@hadoop100 ~]# useradd zhy
[root@hadoop100 ~]# passwd zhy

平时操作时,使用 zhy 账户,不必使用 root 账户。

5)配置 zhy 账户具有 root 权限,方便后期加 sudo 执行 root 权限命令

[root@hadoop100 ~]# vim /etc/sudoers

修改/etc/sudoers 文件,在%wheel ALL=(ALL) ALL这行下面添加一行,如下所示:

## Allow root to run any commands anywhere 
root    ALL=(ALL)     ALL 
 
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)     ALL
zhy     ALL=(ALL)     NOPASSWD:ALL

注:添加的这一行不要直接放到 root 行下面,因为所有用户都属于 wheel 组,你先配置了 zhy 具有免密功能,但是程序执行到%wheel 行时,该功能又被覆盖回需要密码。所以 添加的行要放到%wheel 这行下面。

6)准备软件存放目录以及安装目录,并修改所属主和所属组

  • 在/opt 目录下创建 module、software 文件夹
[root@hadoop100 ~]# mkdir /opt/module 
[root@hadoop100 ~]# mkdir /opt/software
  • 修改 module、software 文件夹的所有者和所属组均为 zhy 用户
[root@hadoop100 ~]# chown zhy:zhy /opt/module  
[root@hadoop100 ~]# chown zhy:zhy /opt/software

完成上述两步后,可以使用 ll 命令查看。

7)如果机器中有自带的 jdk ,则卸载

[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e 
--nodeps
  • rpm -qa:查询所安装的所有 rpm 软件包
  • grep -i:忽略大小写
  • xargs -n1:表示每次只传递一个参数
  • rpm -e –nodeps:强制卸载软件

8)可以在这里安装 jdk 和 hadoop 后再克隆,也可以先克隆后使用分发工具将 jdk 和 hadoop 分发给其他机器,这里先克隆。

1.2 克隆虚拟机

1)利用模板机 hadoop100,克隆三台虚拟机:hadoop102 hadoop103 hadoop104

注:克隆时,需要管理模板虚拟机 hadoop100

2)修改克隆机 IP,以下以 hadoop102 举例说明

  • 修改克隆虚拟机的静态 IP:vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.50.102
  • 修改克隆机主机名:vim /etc/hostname
[root@hadoop100 ~]# vim /etc/hostname 
hadoop102
  • 重启
[root@hadoop100 ~]# reboot

2. 集群的安装

2.1 hadoop102 中 JDK 与 hadoop 的安装

1)安装包准备:用 XShell 传输工具将 JDK 与 hadoop 导入到 /opt/software

2)解压 JDK 与 hadoop 到/opt/module 目录下

[zhy@hadoop102 software]$ tar -zxvf  jdk-8u212-linux-x64.tar.gz -C /opt/module
[zhy@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module

3)配置环境变量:

  • 新建/etc/profile.d/my_env.sh 文件
[zhy@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh

注意:不直接修改 /etc/profile 的原因是 /etc/profile.d/比/etc/profile好维护

  • 添加以下内容:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME 
export HADOOP_HOME=/opt/module/hadoop-3.1.3 
export PATH=$PATH:$HADOOP_HOME/bin 
export PATH=$PATH:$HADOOP_HOME/sbin
  • 使新的环境变量 PATH 生效:
[zhy@hadoop102 ~]$ source /etc/profile

注:可以使用 java 与 hadoop(的 version )命令验证;如果不能用,尝试重启

2.2 Hadoop 目录结构

2.3 Hadoop 运行模式

Hadoop 官方网站:http://hadoop.apache.org/

Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。

  • 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
  • 伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
  • 完全分布式模式:多台服务器组成分布式环境。生产环境使用。

2.4 SSH 无密登录配置(方便 使用 xsync 分发等):

可以先不配置ssh无密登录,使用下面的 xsync 分发——需要输入很多次密码。

1)原理

2)在 hadoop102 生产公钥和私钥:

[zhy@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)

3)将公钥拷贝到要免密登录的目标机器上

[zhy@hadoop102 .ssh]$ ssh-copy-id hadoop102 
[zhy@hadoop102 .ssh]$ ssh-copy-id hadoop103 
[zhy@hadoop102 .ssh]$ ssh-copy-id hadoop104

4)在 hadoop103、hadoop104 上重复 2)、3)步骤

5)如果需要 root 无密登录,可以切换到 root 重复 2)、3)、4)

2.5 编写集群分发脚本 xsync

1)命令介绍

  • scp(secure copy)安全拷贝
    • scp 可以实现服务器与服务器之间的数据拷贝
    • scp -r pdir/fname user@host:pdir/fname
  • rsync 远程同步工具
    • rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
    • rsync -av pdir/fname user@host:pdir/fname
      • -a 归档拷贝
      • -v 显示复制过程

注意:rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。

2)xsync 集群分发脚本

  • 在/home/zhy/bin 目录下创建 xsync 文件
[zhy@hadoop102 opt]$ cd /home/zhy
[zhy@hadoop102 ~]$ mkdir bin 
[zhy@hadoop102 ~]$ cd bin 
[zhy@hadoop102 bin]$ vim xsync
  • 在该文件中编写如下代码:
#!/bin/bash 

#1. 判断参数个数 
if [ $# -lt 1 ]
then
    echo Not Enough Arguement! 
    exit;
fi
#2. 遍历集群所有机器 
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================  $host  ==================== 
    #3. 遍历所有目录,挨个发送 

    for file in $@
    do
        #4. 判断文件是否存在 
        if [ -e $file ]
            then
                #5. 获取父目录 
                pdir=$(cd -P $(dirname $file); pwd)

                #6. 获取当前文件的名称 
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists! 
        fi
    done
done
  • 修改脚本 xsync 具有执行权限
[zhy@hadoop102 bin]$ chmod +x xsync
  • 使用脚本分发(使用 zhy 账户测试):
[zhy@hadoop102 ~]$ xsync /home/atguigu/bin
  • 将脚本复制到/bin 中,以便全局调用
[zhy@hadoop102 bin]$ sudo cp xsync /bin/
  • 同步环境变量配置(使用 root 测试):
[zhy@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh

注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。

在 hadoop103 和 hadoop 104让环境生效:

[zhy@hadoop103 bin]$ source /etc/profile 
[zhy@hadoop104 opt]$ source /etc/profile

3. 集群配置

3.1 集群部署规划:

NameNode、SecondaryNameNode、ResourceManager 尽量不要装在同一台机器上;因为都比较耗内存。

  • HDFS
    • hadoop102:NameNode、DataNode
    • hadoop103:DataNode
    • hadoop104:SecondaryName、DataNode
  • YARN
    • hadoop102:NodeManager
    • hadoop103:ResourceManager、NodeManager
    • hadoop104:NodeManager

3.2 配置文件说明

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,用户想修改某一默认配置值时,只需要修改自定义配置文件,更改相应属性值。

1)默认配置文件(及文件存放在 Hadoop 的 jar 包):

  • core-default.xml: hadoop-common-3.1.3.ja
  • hdfs-default.xml:hadoop-hdfs-3.1.3.jar/hdfs-default.xml
  • yarn-default.xml:hadoop-yarn-common-3.1.3.jar
  • mapred-default.xml:hadoop-mapreduce-client-core-3.1.3.jar

2)自定义配置文件:

  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml

四个配置文件存放在$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。

3.3 集群配置

1)核心配置文件: core-site.xml

[zhy@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop

内容:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
    <!-- 指定 NameNode的地址 --> 
    <property> 
        <name>fs.defaultFS</name> 
        <value>hdfs://hadoop102:8020</value> 
    </property> 
 
    <!-- 指定 hadoop数据的存储目录 --> 
    <property> 
        <name>hadoop.tmp.dir</name> 
        <value>/opt/module/hadoop-3.1.3/data</value> 
    </property> 
 
    <!-- 配置 HDFS网页登录使用的静态用户为 atguigu --> 
    <property> 
        <name>hadoop.http.staticuser.user</name> 
        <value>zhy</value> 
    </property> 
</configuration>

2)HDFS配置文件

[zhy@hadoop102 hadoop]$ vim hdfs-site.xml

内容:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
   <!-- nn web端访问地址--> 
   <property> 
        <name>dfs.namenode.http-address</name> 
        <value>hadoop102:9870</value> 
    </property> 
   <!-- 2nn web端访问地址--> 
    <property> 
        <name>dfs.namenode.secondary.http-address</name> 
        <value>hadoop104:9868</value> 
    </property> 
</configuration>

3)YARN 配置文件

[zhy@hadoop102 hadoop]$ vim yarn-site.xml

内容:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> 
    <!-- 指定 MR走 shuffle --> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
 
    <!-- 指定 ResourceManager的地址--> 
    <property> 
        <name>yarn.resourcemanager.hostname</name> 
        <value>hadoop103</value> 
    </property> 
 
    <!-- 环境变量的继承 --> 
    <property> 
        <name>yarn.nodemanager.env-whitelist</name> 
                <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> 
    </property> 
</configuration>

4)MapReduce 配置文件

[zhy@hadoop102 hadoop]$ vim mapred-site.xml

内容

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 
<configuration> 
   <!-- 指定 MapReduce程序运行在 Yarn上 --> 
    <property> 
        <name>mapreduce.framework.name</name> 
        <value>yarn</value> 
    </property> 
</configuration>

5)配置历史服务器:后面配置,先用起来

6)配置日志的聚集:后面配置,先用起来

最后,使用 xsync 分发:

[zhy@hadoop102 hadoop]$  xsync /opt/module/hadoop-3.1.3/etc/hadoop/

3.4 启动集群

1)配置 workers

[zhy@hadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
hadoop102 
hadoop103 
hadoop104

同步所有节点配置文件

[zhy@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc

2)启动集群

  • 如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。)
[zhy@hadoop102 hadoop-3.1.3]$ hdfs namenode -format
  • 在 hadoop102 启动 HDFS
[zhy@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
  • 在配置了 ResourceManager 的节点(hadoop103)启动 YARN
[zhy@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

3)集群基本测试

  • 上传 word.txt (若没有,先创建)到集群
[zhy@hadoop102 ~]$ hadoop fs -mkdir /input 
[zhy@hadoop102 ~]$ hadoop fs -put $HADOOP_HOME/wcinput/word.txt /wcinput
  • 执行 wordcount 程序
[zhy@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput

注:可以在 http://hadoop103:8088 查看job信息,在 http://hadoop102:9870 查看结果数据。

3.5 集群其他服务配置:历史服务

1) 配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

  • 配置 mapred-site.xml
[zhy@hadoop102 hadoop]$ vim mapred-site.xml

在该文件里面增加如下配置。

<!-- 历史服务器端地址 --> 
<property> 
    <name>mapreduce.jobhistory.address</name> 
    <value>hadoop102:10020</value> 
</property> 
 
<!-- 历史服务器 web端地址 --> 
<property> 
    <name>mapreduce.jobhistory.webapp.address</name> 
    <value>hadoop102:19888</value> 
</property>
  • 分发配置
[zhy@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
  • 在 hadoop102 启动历史服务器
[zhy@hadoop102 hadoop]$ mapred --daemon start historyserver
  • 查看历史服务器是否启动
[zhy@hadoop102 ~]$ jps
2240 NodeManager
2416 JobHistoryServer
3249 Jps
1794 NameNode
1950 DataNode
  • 查看 JobHistory

http://hadoop102:19888/jobhistory

2)配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS 系统上。

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注 意 : 开 启 日 志 聚 集 功 能 , 需 要 重 新 启 动 NodeManager 、ResourceManager 和 HistoryServer。

开启日志聚集功能具体步骤如下:

  • 配置 yarn-site.xml
[zhy@hadoop102 hadoop]$ vim yarn-site.xml

在该文件里面增加如下配置。

<!-- 开启日志聚集功能 --> 
<property> 
    <name>yarn.log-aggregation-enable</name> 
    <value>true</value> 
</property> 
<!-- 设置日志聚集服务器地址 --> 
<property>   
    <name>yarn.log.server.url</name>   
    <value>http://hadoop102:19888/jobhistory/logs</value> 
</property> 
<!-- 设置日志保留时间为 7天 --> 
<property> 
    <name>yarn.log-aggregation.retain-seconds</name> 
    <value>604800</value> 
</property>
  • 分发配置
[zhy@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml
  • 关闭 NodeManager 、ResourceManager 和 HistoryServer
[zhy@hadoop102 hadoop-3.1.3]$ mapred --daemon stop historyserver
[zhy@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh 
[zhy@hadoop102 hadoop-3.1.3]$ sbin/stop-dfs.sh 
  • 启动 NodeManager 、ResourceManage 和 HistoryServer
[zhy@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh 
[zhy@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh 
[zhy@hadoop102 hadoop-3.1.3]$ mapred --daemon start historyserver
  • 删除 HDFS 上已经存在的输出文件
[zhy@hadoop102 ~]$ hadoop fs -rm -r /wcoutput
  • 执行 WordCount 程序
[zhy@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput

3.6 编写 Hadoop 集群常用脚本

1)Hadoop 集群启停脚本(包含 HDFS,Yarn,Historyserver):myhadoop.sh

[zhy@hadoop102 ~]$ cd /home/zhy/bin 
[zhy@hadoop102 bin]$ vim myhadoop.sh

输入如下内容:

if [ $# -lt 1 ]
then
    echo "No Args Input..." 
    exit ;
fi

case $1 in
"start")
        echo " =================== 启动 hadoop集群 ===================" 

        echo " --------------- 启动 hdfs ---------------" 
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------" 
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------" 
        ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ===================" 

        echo " --------------- 关闭 historyserver ---------------" 
        ssh  hadoop102  "/opt/module/hadoop-3.1.3/bin/mapred  --daemon  stop historyserver"
        echo " --------------- 关闭 yarn ---------------" 
        ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------" 
        ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..." 
;;
esac

保存后退出,然后赋予脚本执行权限

[zhy@hadoop102 bin]$ chmod +x myhadoop.sh

2)查看三台服务器 Java 进程脚本:jpsall

[zhy@hadoop102 ~]$ cd /home/zhy/bin 
[zhy@hadoop102 bin]$ vim jpsall

输入如下内容

#!/bin/bash 
 
for host in hadoop102 hadoop103 hadoop104 
do 
        echo =============== $host =============== 
        ssh $host jps  
done

保存后退出,然后赋予脚本执行权限

[zhy@hadoop102 bin]$ chmod +x jpsall

3)分发/home/zhy/bin 目录,保证自定义脚本在三台机器上都可以使用

[zhy@hadoop102 ~]$ xsync /home/zhy/bin/

4. 集群时间同步

  • 如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;
  • 如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。

1)查看所有节点 ntpd 服务状态和开机自启动状态

[zhy@hadoop102 ~]$ sudo systemctl status ntpd
[zhy@hadoop102 ~]$ sudo systemctl start ntpd
[zhy@hadoop102 ~]$ sudo systemctl is-enabled ntpd

2)修改 hadoop102 配置文件(必须 root 用户)

修改 ntp.conf 配置文件:

[zhy@hadoop102 ~]$ sudo vim /etc/ntp.conf

修改内容如下:

(a)修改 1(授权 192.168.1.0-192.168.10.255 网段上的所有机器可以从这台机器上查询和同步时间)

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

为:

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

(b)修改 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

(c)添加 3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)

server 127.127.1.0 
fudge 127.127.1.0 stratum 10

(3)修改 hadoop102 的/etc/sysconfig/ntpd 文件

[zhy@hadoop102 ~]$ sudo vim /etc/sysconfig/ntpd

增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

(4)重新启动 ntpd 服务,并设置开机自启动

[zhy@hadoop102 ~]$ sudo systemctl start ntpd
[zhy@hadoop102 ~]$ sudo systemctl enable ntpd

3)其他机器配置(必须 root 用户)

(1)关闭所有节点上 ntp 服务和自启动

[zhy@hadoop103 ~]$ sudo systemctl stop ntpd 
[zhy@hadoop103 ~]$ sudo systemctl disable ntpd 
[zhy@hadoop104 ~]$ sudo systemctl stop ntpd 
[zhy@hadoop104 ~]$ sudo systemctl disable ntpd

(2)在其他机器配置 1 分钟与时间服务器同步一次

[zhy@hadoop103 ~]$ sudo crontab -e

编写定时任务如下:

*/1 * * * * /usr/sbin/ntpdate hadoop102

(3)修改任意机器时间

[zhy@hadoop103 ~]$ sudo date -s "2018-8-22 18:30:10"

(4)1 分钟后查看机器是否与时间服务器同步

[zhy@hadoop103 ~]$ sudo date
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容