hadoop系列(二)常用配置、启动方式、HDFS,YARN配置文件

Hadoop(二)常用配置、启动方式、HDFS,YARN配置文件
概述:

来自Hadoop官网的介绍

Now you are ready to start your Hadoop cluster in one of the three supported modes:

1.本地模式
数据储存在Linux本地
2.伪分布式-单台节点
数据储存在单台节点的HDFS
3.完全分布式-001节点
数据储存在节点的HDFS
3.完全分布式-002节点
3.完全分布式-003节点

1.本地模式

Local (Standalone) Mode–本地模式

案列:

  1. 创建测试文件夹(LocalModule_test ):/opt/module/hadoop-3.1.3/localmodule
  2. 创建测试文件 vim data.txt
#测试文件插入数据
hadoop hadoop
spring spring
springCloud springCloud springCloud
mybatis mybatisPlus
redmi redmi redmi redmi
oppo
vivo
  1. 使用hadoop案例:hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount localmodule/ ./localmoduleOutput

    指令含义

    • hadoop jar //hadoop 来源是bin下面的指令,jar 执行jar包hadoop-mapreduce-examples-3.1.3.jar
    • wordcount //执行统计次数的任务
    • 需要指定一个输入路径和输出路径,跟在wordcount后 注意:输出路径不能存在,输入输出路径不能重叠,我测试的时候发现把输出路径写在输入路径下面,不能 成功执行
  2. 运算结果:统计了出现的次数

image-20220812105727711

hadoop  2
mybatis 1
mybatisPlus     1
oppo    1
redmi   4
spring  2
springCloud     3
vivo    1

2.完全分布式集群

Fully-Distributed Mode–完全分布式集群

准备工作

  1. 3台服务器节点(Hadoop102,Hadoop103,Hadoop104)
  2. JDK、hadoop安装
  3. 配置环境
一、准备需要

SCP

  1. scp -r jdk1.8.0_212/ wuhong@Hadoop104:/opt/module/ -转发到104服务器
  2. **scp -r wuhong@Hadoop102:/opt/module/hadoop-3.1.3 ./ ** -104服务器拉取 102服务器的资源
  3. *scp -r wuhong@Hadoop102:/opt/module/ ./ ** -103服务器拉取 102服务器的资源
  • 使用scp指令,拷贝102的jdk、hadoop到其他节点(Hadoop103)的时候,发现一直有Permanently added (RSA) to the list of known hosts的警告
    • 检查 /etc/hosts 中的端口对应是否正确
    • 检查/etc/hostname 主机名是否是Hadoop103
    • 我这里的遇到的问题是,Linux用户密码问题,之前添加了xxxx的用户,使用 useradd 直接创建了用户,没有设置密码。在使用scp转发文件时需要输入其他节点用户的密码,所以一直不正确
      • 解决方案:我这里使用了的是root账号去修改其他账户密码

rsync

基本语法

rsync  av  $pdir/$fname   $user@$host:$pdir/$fname

-av p d i r / pdir/ pdir/fname u s e r @ user@ user@host: p d i r / pdir/ pdir/fname

选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

选项参数说明

选项功能
-a归档拷贝
-v显示复制过程

由于使用的是最小安装,没有rsync,需要手动安装

yum install rsync -y       //安装rsync
systemctl start rsyncd     //启动rsync
 systemctl enable rsyncd   //开机自启

指令验证步骤

  1. 在Hadoop103,删除hadoop文件下的localMoude(之前的测试数据),然后通过rsync指令,从Hadoop102同步过来
  2. 首次使用scp复制拷贝,后续使用rsync同步,效率较高

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


二、rsync集群分发脚本

rsync集群分发

需要实现的需求:使用 rsync + 文件命 就能实现同步

  1. 查看环境变量,添加一个自己的全局变量或者在其他已有的全局变量下,添加脚本

    echo $PATH
    
    
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/root/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin :/home/wuhong/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/opt/module/jdk1.8.0_212/bin
    
    
  2. 案例是再用户下面创建bin目录

    /home/wuhong/bin:
    
  3. 如果没有可以去 /etc/profile 添加全局变量

    vim /etc/profile 
    
     export PATH="$PATH :/home/wuhong/bin"
    
  4. 去bin目录下创建脚本

    --/home/wuhong/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
    
  5. 在任意位置使用xsync 加上文件,既可在集群之间分发文件或者脚本

[wuhong@Hadoop102 ~]$ ll
总用量 8
-rw-rw-r--. 1 wuhong wuhong 33 812 17:20 bb.txt
drwxrwxr-x. 2 wuhong wuhong 66 812 17:12 bin
-rw-rw-r--. 1 wuhong wuhong 33 812 17:44 ccc.txt
[wuhong@Hadoop102 ~]$ xsync  ccc.txt  
==================== hadoop102 ====================
wuhong@hadoop102's password: 
wuhong@hadoop102's password: 
sending incremental file list

sent 62 bytes  received 12 bytes  29.60 bytes/sec
total size is 33  speedup is 0.45
==================== hadoop103 ====================
wuhong@hadoop103's password: 
wuhwuhong@hadoop103's password: 
Permission denied, please try again.
wuhong@hadoop103's password: 
sending incremental file list
ccc.txt

sent 142 bytes  received 35 bytes  23.60 bytes/sec
total size is 33  speedup is 0.19
==================== hadoop104 ====================
wuhong@hadoop104's password: 
wuhong@hadoop104's password: 
sending incremental file list
ccc.txt

sent 142 bytes  received 35 bytes  50.57 bytes/sec
total size is 33  speedup is 0.19
[wuhong@Hadoop102 ~]$ 
三、SSH免密登录

非root账户,ssh连接过其他服务器,在其自己的目录下 /home/用户/.ssh,known_hosts会记录登录过其他服务器的信息,使用免密登录,会生成id_rsa ,id_rsa.pub 密钥文件信息

ssh-copy-id + 其他服务器变量名

ssh-keygen -t rsa  //回车三次,生成密钥、公钥
ssh-copy-id Hadoop103  //分发公钥,是其可以无密登录

3.集群配置

​ 注意:

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

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

hadoop102hadoop103hadoop104
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager

2)配置文件说明

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

(1)默认配置文件:

要获取的默认文件文件存放在Hadoop的jar包中的位置
[core-default.xml]hadoop-common-3.1.3.jar/core-default.xml
[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这个路径上,用户可以根据项目需求重新进行修改配置。


配置core-site.xml
<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>


配置hdfs-site.xml
<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>

配置yarn-site.xml
<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>


配置mapred-site.xml
<configuration>
	<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>


配置 workers

/opt/module/hadoop-3.1.3/etc/hadoop目录,添加节点的主机名称,

vim workers  //注意 不能出现空格,不能出现空白的行。不然会被当作一个变量去执行
Hadoop102
Hadoop103
Hadoop104

4.启动


4.1-正常启动组件列表
  • 输入JPS查看
hadoop102hadoop103hadoop104
HDFSNameNode、 DataNodeDataNodeSecondaryNameNode 、DataNode
YARNNodeManagerResourceManager 、NodeManagerNodeManager

2)启动集群

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

[wuhong@hadoop102 hadoop-3.1.3]$ hdfs namenode -format

(2)启动HDFS

[wuhong@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh

然后执行jsp

[wuhong@Hadoop102 hadoop-3.1.3]$ jps
Starting namenodes on [hadoop102]
Starting datanodes
Hadoop103: WARNING: /opt/module/hadoop-3.1.3/logs does not exist. Creating.
Hadoop104: WARNING: /opt/module/hadoop-3.1.3/logs does not exist. Creating.

启动成功可查看:HDFS客户端web界面访问端口:9870

image-20220816165200590

(3)Hadoop103启动YARN

web访问端口:8088

[wuhong@Hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh 
Starting resourcemanager
Starting nodemanagers
[wuhong@Hadoop103 hadoop-3.1.3]$ jps
2353 DataNode
2547 ResourceManager
2790 Jps
2651 NodeManager
[wuhong@Hadoop103 hadoop-3.1.3]$ 

image-20220816165544050

文件操作: 在HDFS中创建一个目录(文件系统中的目录,不是Linux上的目录)

[wuhong@Hadoop102 hadoop-3.1.3]$ hadoop fs -mkdir /wcinput

image-20220816170007375

4.2-测试存储功能

put上传文件:hadoop fs -put 需要上传的文件 HDFS目录为主

[wuhong@Hadoop102 hadoop-3.1.3]$ hadoop fs -put localmodule/wordData1.txt  /wcinput
2022-08-16 17:03:22,886 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false

image-20220816170418038

需要在window中配置hosts映射,否则无法下载和预览

C:\Windows\System32\drivers\etc hosts文件

可下载,可预览

image-20220816171419611

文件地址

[wuhong@Hadoop102 subdir0]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1666160335-192.168.10.102-1660638536301/current/finalized/subdir0/subdir0
[wuhong@Hadoop102 subdir0]$ ll
总用量 191952
-rw-rw-r--. 1 wuhong wuhong       118 816 17:03 blk_1073741825
-rw-rw-r--. 1 wuhong wuhong        11 816 17:03 blk_1073741825_1001.meta
-rw-rw-r--. 1 wuhong wuhong       118 816 17:07 blk_1073741826
-rw-rw-r--. 1 wuhong wuhong        11 816 17:07 blk_1073741826_1002.meta
-rw-rw-r--. 1 wuhong wuhong 134217728 816 17:17 blk_1073741827
-rw-rw-r--. 1 wuhong wuhong   1048583 816 17:17 blk_1073741827_1003.meta
-rw-rw-r--. 1 wuhong wuhong  60795424 816 17:17 blk_1073741828
-rw-rw-r--. 1 wuhong wuhong    474975 816 17:17 blk_1073741828_1004.meta

表示有3个副本, 三个服务器都有文件存储的备份

image-20220816172358001

4.3-项目出问题的初始化方法

  1. 停止所有Hadoop的进程

  2. 删除每个节点所有的 /data 和 /logs文件image-20220831175811654

  3. hdfs namenode -format   //格式化组件
    

5.开启历史服务器

作用:记录程序的历史运行历史记录

5.1-配置mapred-site.xml
 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>
5.2-分发配置
 xsync mapred-site.xml

启动历史服务器

[wuhong@Hadoop102 hadoop-3.1.3]$ bin/mapred --daemon start historyserver

jps查看历史服务器是否启动

5.3-运行案列

计算wcinput文件中的,数据重复的数量

[wuhong@Hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput  /wcoutput1

1.文件夹

image-20220831214054314

2.wordData1文件

image-20220831214117519

3.输入上述指令

[wuhong@Hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput  /wcoutput1

4.运行结束后,可以通过yarn查看历史记录

image-20220831213917927

5.历史服务器信息

image-20220831214310185

6.统计结果

image-20220831214425233

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pfNJBo62-1663090081987)(C:\Users\director\AppData\Roaming\Typora\typora-user-images\image-20220831214458372.png)]

6开启历史服务器的日志聚集功能

**功能描述:**是讲多个Hadoop节点的日志信息,聚集到一起

6.1-配置信息

配置 yarn-site.xml /Hadoop安装目录,etc下的配置文件

<!-- 开启日志聚集功能 -->
<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>

6.2-分发配置

xsync 为自定义的脚本文件,用于同步文件到其他节点

 xsync /etc/hadoop/yarn-site.xml

6.3-重启yarn、和历史服务器

 sbin/stop-yarn.sh
 sbin/start-yarn.sh
 mapred --daemon stop historyserver
 mapred --daemon start historyserver
6.3-运行案列

运行5.3的案列, 更改一下计算结果输出的文件夹,(新的计算结果不允许有同名的文件存在)

要确保指令中的/wcoutput2 不存在

[wuhong@Hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput  /wcoutput2

7.集群的启动和停止方式

7.1整体启动
start-dfs.sh/stop-dfs.sh     //整体启动/停止HDFS
start-yarn.sh/stop-yarn.sh    //整体启动/停止YARN 
7.2单独启动节点中的某个服务组件

某个节点的单个组件如果失效,可以单独启动

例入某个服务器HDFS中的datanode未启动,可以进入服务器输入指令单独启动datanode

hdfs --daemon start/stop namenode/datanode/secondarynamenode
yarn --daemon start/stop resourcemanager/nodemanager
7.3使用脚本全部启动

/home/wuhong/bin 进入自己的用户目录(存放脚本的目录)
vim myHadoop.sh //编写脚本文件

#!/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"
        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

测试环境和生成环境不同,可以编写自己服务器的启动脚本进行操作

#!/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"
        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

8.常用端口号说明(面试问题)

端口名称Hadoop2.xHadoop3.x
NameNode内部通信端口8020 / 90008020 / 9000/9820
NameNode HTTP UI500709870
MapReduce查看执行任务端口80888088
历史服务器通信端口1988819888

9.常用配置文件(面试问题)

image-20220831225438832

10.集群时间同步问题(未测试过)

时间同步的前提原因:

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

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

解决方案

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

2.间服务器配置—必须root用户

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

[atguigu@hadoop102 ~]$ sudo systemctl status ntpd

[atguigu@hadoop102 ~]$ sudo systemctl start ntpd

[atguigu@hadoop102 ~]$ sudo systemctl is-enabled ntpd

修改hadoop102的ntp.conf配置文件

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

修改内容如下

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

#restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap

为restrict 192.168.10.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 文件

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

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

SYNC_HWCLOCK=yes

(4)重新启动ntpd服务

[atguigu@hadoop102 ~]$ sudo systemctl start ntpd

(5)设置ntpd服务开机启动

[atguigu@hadoop102 ~]$ sudo systemctl enable ntpd
  1. 其他机器配置(必须root用户)

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

[atguigu@hadoop103 ~]$ sudo systemctl stop ntpd

[atguigu@hadoop103 ~]$ sudo systemctl disable ntpd

[atguigu@hadoop104 ~]$ sudo systemctl stop ntpd

[atguigu@hadoop104 ~]$ sudo systemctl disable ntpd

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

[atguigu@hadoop103 ~]$ sudo crontab -e

编写定时任务如下:

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

(3)修改任意机器时间

[atguigu@hadoop103 ~]$ sudo date -s "2021-9-11 11:11:11"

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

[atguigu@hadoop103 ~]$ sudo date

entos.pool.ntp.org iburst








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

```shell
server 127.127.1.0

fudge 127.127.1.0 stratum 10

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

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

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

SYNC_HWCLOCK=yes

(4)重新启动ntpd服务

[atguigu@hadoop102 ~]$ sudo systemctl start ntpd

(5)设置ntpd服务开机启动

[atguigu@hadoop102 ~]$ sudo systemctl enable ntpd
  1. 其他机器配置(必须root用户)

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

[atguigu@hadoop103 ~]$ sudo systemctl stop ntpd

[atguigu@hadoop103 ~]$ sudo systemctl disable ntpd

[atguigu@hadoop104 ~]$ sudo systemctl stop ntpd

[atguigu@hadoop104 ~]$ sudo systemctl disable ntpd

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

[atguigu@hadoop103 ~]$ sudo crontab -e

编写定时任务如下:

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

(3)修改任意机器时间

[atguigu@hadoop103 ~]$ sudo date -s "2021-9-11 11:11:11"

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

[atguigu@hadoop103 ~]$ sudo date








最后:笔记文章通过B站尚硅谷视频进行整理的

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值