大数据开发之Hadoop(入门)

第 1 章:Hadoop概述

1.1 Hadoop是什么

1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

2、主要解决,海量数据的存储和海量数据的分析计算问题。

3、Hadoop通常是指一个更广泛的概念-Hadoop生态圈

1.2 Hadoop优势(4高)

1、高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。

2、高扩展性:再集群间分配任务数据,可方便的扩展数以千计的节点。

3、高效性:再MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

4、高容错性:能够自动将失败的任务重新分配。

1.3 Hadoop组成(面试重点)

在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合度较大。

在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MaoReduce只负责运算。

1.3.1 HDFS架构概述

Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。

1、NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

2、DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

3、Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

1.3.2 YARN架构概述

Yet Another Resource Negotiator简称YARN,另一种资源协调者,是Hadoop的资源管理器。

YARN架构概述

1)ResourceManager(RM):整个集群资源(内存、CPU等)老大

2)NodeManager(NM):单个节点服务器资源老大

3)ApplicationMaster(AN):单个文物运行的老大

4)Container容器:相当于一台独立的服务器,里面封装了任务运行所需的资源,如内存、cpu、磁盘、网络等。

1.3.3 MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce

1、Map阶段并行处理输入数据

2、Reduce阶段对Map结果进行汇总

1.4 大数据技术生态体系

1、Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

2、Flume:Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传递的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据。

3、Kafka:Kafka是一个高吞吐量的分布式发布订阅消息系统。

4、Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

5、Flink:Flink是当前最流行的开源大数据内存计算框架,用于实时计算的场景较多。

6、Oozie:Oozie是一个管理Hadoop作业(job)的工作流程调用管理系统。

7、HBase:HBase是一个分布式的、面向列的开源数据块。HBase不同于一般的关系数据块,它是一个非常适合于非结构化数据存储的数据块。

8、Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

9、ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

第 2 章:Hadoop运行模式

本地模式:单机运行,只是用来演示以下官方案例。生产环境不用。

伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。

完全分布式模式:多台服务器组成分布式环境。生产环境使用。

3.1 本地运行模式(官方WordCount)

1、创建在hadoop-3.1.3文件下面创建一个wcinput文件夹

sql 复制代码
mkdir wcinput

2、在wcinput文件下创建一个word.txt文件

sql 复制代码
cd wcinput

3、编辑word.txt文件

sql 复制代码
vim word.txt
hadoop yarn
hadoop mapreduce
atguigu
atguigu

4、回到Hadoop目录/opt/module/hadoop-3.1.3

5、执行程序

sql 复制代码
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput

6、查看结果

sql 复制代码
cat wcoutput/part-r-00000
atguigu 2
hadoop  2
mapreduce       1
yarn    1

3.2 完全分布式运行模式(开发重点)

1、分析:

1)准备3台客户机(关闭防火墙、静态IP、主机名称)

2)安装JDK

3)配置环境变量

4)安装Hadoop

5)配置环境变量

6)配置集群

7)单点启动

8)配置ssh

9)群起并测试集群

3.2.1 编写集群分发脚本xsync

1、scp(secure copy)安全拷贝

1)scp定义

scp可以实现服务器与服务器之间的数据拷贝。

2)基本语法

sql 复制代码
scp    -r        $pdir/$fname             $user@$host:$pdir/$fname
命令   递归     要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

3)案例实操

前提:在hadoop102、103、104都创建好的/opt/module、/opt/software两个目录,并且已经把这两个目录修改为atguigu:atguigu

sql 复制代码
sudo chown atguigu:atguigu -R /opt/module

(1)在hadoop102上,将102中/opt/module/jdk目录拷贝到103上

sql 复制代码
scp -r /opt/module/jdk1.8.0_212  atguigu@hadoop103:/opt/module

(2)在103上,将102中/opt/module/hadoop目录拷贝到103上

sql 复制代码
$ scp -r atguigu@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/

(3)在103上操作,将102中/opt/module目录下所有目录拷贝到104上

sql 复制代码
scp -r atguigu@hadoop102:/opt/module/* atguigu@hadoop104:/opt/module

2、rsync远程同步工具

rsync主要用于备份和镜像。具有速度块、避免复制相同内容和支持符号链接的优点。

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

1)基本语法

sql 复制代码
rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname
命令   选项参数   要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称
选项 功能
-a 归档拷贝
-v 显示复制过程
2)实操
(1)删除103中/opt/module/hadoop-3.1.3/wcinput
sql 复制代码
rm -rf wcinput/

(2)同步hadoop102中/opt/~~/hadoop-3.1.3到103

sql 复制代码
$ rsync -av hadoop-3.1.3/ atguigu@hadoop103:/opt/module/hadoop-3.1.3/

3、xsync群发脚本

1)需求:循环复制文件到所有节点的相同目录下

2)需求分析:

(1)rsync命令原始拷贝

sql 复制代码
rsync  -av     /opt/module  		 atguigu@hadoop103:/opt/

(2)期望脚本:xsync要同步的文件名称

(3)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

sql 复制代码
echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bin

3)脚本实现

(1)在/home/atguigu/bin目录下创建xsync文件

sql 复制代码
cd /home/atguigu
mkdir bin
cd bin
vim xsync

在文件中编写如下代码

sql 复制代码
#!/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

(2)修改脚本xsync具有执行权限

sql 复制代码
chmod +x xsync

(3)测试脚本

sql 复制代码
xsync /home/atguigu/bin

(4)将脚本复制到/bin中,以便全局调用

sql 复制代码
xsync /home/atguigu/bin

(5)同步环境变量配置(root所有者)

sql 复制代码
sudo xsync /etc/profile.d/my_env.sh

让环境变量生效

sql 复制代码
source /etc/profile

3.2.3 SSH无密登录配置

1、配置ssh

1)基本语法

ssh另一台电脑的IP地址

2)ssh连接时出现Host key verification failed的解决方法

sql 复制代码
ssh hadoop103

如果出现如下内容

sql 复制代码
Are you sure you want to continue connecting (yes/no)? 

输入yes,并回车

3)退回到hadoop102

2、无密钥配置

1)免密登录原理

2)生成公钥和私钥

sql 复制代码
 pwd /home/atguigu/.ssh
ssh-keygen -t rsa

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

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

sql 复制代码
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

注意:

还需要再hadoop103上采用root账号配置一下无密登录到102、103、104服务器上。102、104同样。

3.2.4 集群配置

1、集群部署规划

注意:

NameNode和SecondaryNameNode不要安装再同一台服务器

ResourceManager也很消耗内存,不要和NameNode、SecondarryNameNode配置再同一台机器上。

2、配置文件说明

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

1)默认配置文件:

要获取的默认文件 文件存放在Hadoop的jar包中的位置
core-default.xml hadoop-common-3.1.3.jar/core-default.xnk
hdfs-default.xml hadoop-hdfs-3.1.3.jar/hdfs-default.xml
yarn-default.xml hadoop-yarn-common-3.1.3.jar/yarn-default.xml
mapred-default.xml hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml

2)自定义配置文件:

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

3、配置集群

1)核心配置文件

core-site.xml

sql 复制代码
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml

文件内容如下:

sql 复制代码
<?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>atguigu</value>
    </property>
</configuration>

2)HDFS配置文件

配置hdfi-site.xml

sql 复制代码
vim hdfs-site.xml

文件内容如下:

sql 复制代码
<?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配置文件

配置yarn-site.xml

sql 复制代码
vim yarn-site.xml

文件内容如下

sql 复制代码
<?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配置文件

配置mapred-site.xml

sql 复制代码
vim mapred-site.xml

文件内容如下:

sql 复制代码
<?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>

4、在集群上分发配置好的Hadoop配置文件

sql 复制代码
xsync /opt/module/hadoop-3.1.3/etc/hadoop/

5)去103和104上查看文件分发清空

sql 复制代码
cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

3.2.5 群起集群

1、配置workers

sql 复制代码
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

在该文件中增加如下内容

sql 复制代码
hadoop102
hadoop103
hadoop104

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

同步所有节点配置文件

sql 复制代码
xsync /opt/module/hadoop-3.1.3/etc

2、启动群起

1)如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到以往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

sql 复制代码
hdfs namenode -format

2)启动HDFS

sql 复制代码
sbin/start-dfs.sh

3)在配置了ResourceManager的节点(hadoop103)启动YARN

sql 复制代码
sbin/start-yarn.sh

3.2.6 集群启动/停止方式总结

1、各个模块分开启动/停止(配置ssh是前提)常用

1)整体启动/停止HDFS

sql 复制代码
start-dfs.sh/stop-dfs.sh

2)整体启动/停止YARN

sql 复制代码
start-yarn.sh/stop-yarn.sh

2、各个服务组件逐一启动/停止

1)分别启动/停止HDFS组件

sql 复制代码
hdfs --daemon start/stop namenode/datanode/secondarynamenode

2)启动/停止YARN

sql 复制代码
yarn --daemon start/stop resourcemanager/nodemanager

3.2.7 编写Hadoop集群常用脚本

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

sql 复制代码
cd /home/atguigu/bin
vim myhadoop.sh

输入以下内容:

sql 复制代码
#!/bin/bash

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"
;;
"stop")
        echo " ==========关闭 hadoop集群 ========="
        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

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

sql 复制代码
chmod +x myhadoop.sh

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

sql 复制代码
cd /home/atguigu/bin
vim jpsall

输入如下内容

sql 复制代码
#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
        echo =============== $host ===============
        ssh $host jps 
done

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

sql 复制代码
chmod +x jpsall

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

sql 复制代码
xsync /home/atguigu/bin/

1)Web端查看HDFS的NameNode

(1)浏览器输入:http://hadoop102:9870

(2)查看HDFS上存储的数据信息

2)Web端查看YARN的ResourceManager

(1)浏览器中输入:http://hadoop103:8088

(2)查看YARN上运行的Job信息

4、集群基本测试

1)上传文件到集群

创建目录

上传文件

2)执行wordcount程序

sql 复制代码
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

3)注意:如果在执行过程中报错超出虚拟内存限制

解决方案:在yarn-site.xml中添加如下内容(配置后进行分发)

sql 复制代码
<!-- 解决Yarn在执行程序遇到超出虚拟内存限制,Container被kill  -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

3.2.8 配置历史服务器

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

1、配置mapred-site.xml

sql 复制代码
vim mapred-site.xml

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

sql 复制代码
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
</property>

2、分发配置

sql 复制代码
xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml

3、在hadoop102启动历史服务器

sql 复制代码
mapred --daemon start historyserver

4、查看历史服务器是否启动

sql 复制代码
jps

5、查看JobHistory

http://hadoop102:19888/jobhistory

3.2.9 配置日志的聚集

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

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

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

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

1、配置yarn-site.xml

sql 复制代码
vim yarn-site.xml

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

sql 复制代码
<!-- 开启日志聚集功能 -->
<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>

2)分发配置

sql 复制代码
xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml

3)关闭NodeManager、ResourceManager和HistoryServer

sql 复制代码
[atguigu@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh
[atguigu@hadoop102 hadoop-3.1.3]$ mapred --daemon stop historyserver

4)启动NodeManager、ResourceManager和HistoryServer

sql 复制代码
[atguigu@hadoop103 ~]$ start-yarn.sh
[atguigu@hadoop102 ~]$ mapred --daemon start historyserver

5)删除HDFS上已经存在的输出文件(可以通过页面删除)

sql 复制代码
[atguigu@hadoop102 ~]$ hadoop fs -rm -r /output

6)执行WordCount程序

sql 复制代码
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

7)查看日志

(1)历史服务器地址

http://hadoop102:19888/jobhistory

(2)历史任务列表

(3)查看任务运行日志

(4)运行日志详情

3.2.10 常用端口号说明

端口名称 Hadoop2.x Hadoop3.x
NameNode内部通信端口 8020/9000 8020/9000/9820
NameNode HTTP UI 50070 9870
MapReduce查看执行任务端口 8088 8088
历史服务器通信端口 19888 19888

3.2.11 集群时间同步

如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;

如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。

1、需求

找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,生产环境根据任务对事件的准确程度要求周期同步。测试环境为了尽快看到效果,采用1分组同步一次。

2、事件服务器配置(必须root用户)

1)查看hadoop102服务状态和开机自启动状态(如果开着就关掉)

sql 复制代码
[atguigu@hadoop102 ~]$ sudo systemctl status ntpd
[atguigu@hadoop102 ~]$ sudo systemctl is-enabled ntpd

2)修改hadoop102的ntp.conf配置文件

sql 复制代码
[atguigu@hadoop102 ~]$ sudo vim /etc/ntp.conf

修改内容如下:

(1)修改1(授权192.168.10.0-192.168.10.255网段上的所有机器可以从这台机器上查询和同步事件)

sql 复制代码
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

将上面的注释去掉(并将192.168.1.0改成192.168.10.0)

sql 复制代码
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap

(2)修改2(集群在局域网中,不使用其他互联网上的时间)

sql 复制代码
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(当该节点丢失网络连接,依然可以采用该本地时间作为时间服务器为集群中的其它节点提供时间同步)

sql 复制代码
server 127.127.1.0
fudge 127.127.1.0 stratum 10

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

sql 复制代码
[atguigu@hadoop102 ~]$ sudo vim /etc/sysconfig/ntpd

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

sql 复制代码
SYNC_HWCLOCK=yes

4)重新启动ntpd服务

sql 复制代码
[atguigu@hadoop102 ~]$ sudo systemctl start ntpd

5)设置ntpd服务开机启动

sql 复制代码
[atguigu@hadoop102 ~]$ sudo systemctl enable ntpd

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

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

sql 复制代码
[root@hadoop103 ~]$ systemctl stop ntpd
[root@hadoop103 ~]$ systemctl disable ntpd

[root@hadoop104 ~]$ systemctl stop ntpd
[root@hadoop104 ~]$ systemctl disable ntpd

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

sql 复制代码
[root@hadoop103 ~]$ sudo crontab -e

编辑定时任务如下:

sql 复制代码
*/1 * * * * /usr/sbin/ntpdate hadoop102

3)修改任意机器时间

sql 复制代码
[root@hadoop103 ~]$ date -s "2021-9-11 11:11:11"

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

sql 复制代码
[root@hadoop103 ~]$ date
相关推荐
howard200511 分钟前
大数据概念与价值
大数据·特征·概念·价值
nomi-糯米26 分钟前
Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约
分布式·网络安全·区块链·智能合约·分布式账本
知识分享小能手27 分钟前
mysql学习教程,从入门到精通,SQL DISTINCT 子句 (16)
大数据·开发语言·sql·学习·mysql·数据分析·数据库开发
紫钺-高山仰止37 分钟前
【脑机接口】脑机接口性能的电压波形的尖峰分类和阈值比较
大数据·分类·数据挖掘
喜欢猪猪1 小时前
Kafka是如何保证数据的安全性、可靠性和分区的
分布式·kafka
芊言芊语1 小时前
分布式消息服务Kafka版的详细解析和配置方式
分布式·kafka
Alluxio1 小时前
选择Alluxio来解决AI模型训练场景数据访问的五大理由
大数据·人工智能·分布式·ai·语言模型
武子康2 小时前
大数据-133 - ClickHouse 基础概述 全面了解
java·大数据·分布式·clickhouse·flink·spark
.生产的驴2 小时前
SpringBoot 消息队列RabbitMQ 消费者确认机制 失败重试机制
java·spring boot·分布式·后端·rabbitmq·java-rabbitmq
shuxianshrng3 小时前
大气网格化精细化监管监测系统
大数据·服务器·windows·经验分享