大数据---Hadoop集群搭建学习(干货)

    技术2025-11-28  59

    文章目录

    Hadoop 集群搭建学习1 Hadoop发展史2 Hadoop三大发行版本3 Hadoop的优势(4高)4 Hadoop组成(面试重点)5 HDFS架构概述6 MapReduce架构概述7 大数据技术生态体系8 推荐系统框架图 一 装hadoop&Java1创建文件夹2 安装JDK1.卸载现有JDK2.查看软件包3.解压安装包4 配置环境变量Grep案例WordCount案例 二 伪分布式运行模式启动HDFS并运行MapReduce程序配置集群*启动集群 启动YARN并运行MapReduce程序配置集群*启动集群演示上传文件在集群上执行jar 包 wordcount 三 集群同步脚本&免密配置Rsync 远程同步工具集群同步脚本SSH 无密登入配置密钥是一对 --RSA--非对称加密 四 集群规划练习至少3台服务器工业环境正宗:6台机器(最少)解释补充 五 完整集群配置1 配置免密登陆2 Ps:3 台服务器配置Java_HOME配置Core-site.xml配置hdfs-site.xml配置yarn-site.xml配置mapred-site.xml配置Slaves 4 集群分开5 格式化Namenode 在hadoop1026 启动hdfs7 启动yarn8 查看jps进程脚本&上传上传做mapreduce 处理启动历史服务器: 9 关闭hdfs和 yarn10 启动NN DN RM NM.. 六 配置集群时间同步1. 时间服务器配置(必须root用户)(1)检查ntp是否安装(2)修改ntp配置文件(3)修改/etc/sysconfig/ntpd 文件(4)重新启动ntpd服务(5)设置ntpd服务开机启动 2. 其他机器配置(必须root用户)(1)在其他机器配置10分钟与时间服务器同步一次(2)修改任意机器时间(3)十分钟后查看机器是否与时间服务器同步

    Hadoop 集群搭建学习

    1 Hadoop发展史

    2 Hadoop三大发行版本

    Hadoop三大发行版本**:Apache、Cloudera、Hortonworks。** Apache 版本最原始(最基础)的版本,对于入门学习最好。 Cloudera 在大型互联网企业中用的较多。 Hortonworks 文档较好。

    1.Apache Hadoop 官网地址:http://hadoop.apache.org/releases.html 下载地址:https://archive.apache.org/dist/hadoop/common/ 2.Cloudera Hadoop 官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html 下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/12008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。 (22009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support (3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。 (4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即是对Hadoop的技术支持。 (5)Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。 3. Hortonworks Hadoop 官网地址:https://hortonworks.com/products/data-center/hdp/ 下载地址:https://hortonworks.com/downloads/#data-platform (12011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。 (2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。 (3)雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。 (4)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。 (5)HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook开源的Hive中。Hortonworks的Stinger开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒。 (6)Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Window Server和Windows Azure在内的Microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元。

    3 Hadoop的优势(4高)

    4 Hadoop组成(面试重点)

    5 HDFS架构概述

    HDFS(Hadoop Distributed File System)的架构概述,如图

    6 MapReduce架构概述

    MapReduce将计算过程分为两个阶段:Map和Reduce,如图2-25所示

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

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

    7 大数据技术生态体系

    图中涉及的技术名词解释如下:

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

    2)Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

    3)**Kafka:**Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

    (1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

    (2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。

    (3)支持通过Kafka服务器和消费机集群来分区消息。

    (4)支持Hadoop并行数据加载。

    4)Storm:Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。

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

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

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

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

    10)R语言:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

    11)Mahout:Apache Mahout是个可扩展的机器学习和数据挖掘库。

    12)ZooKeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

    8 推荐系统框架图

    一 装hadoop&Java

    1创建文件夹

    在/opt目录下创建module、software文件夹

    [root@hadoop101 opt]$ sudo mkdir module

    [root@hadoop101 opt]$ sudo mkdir software

    2 安装JDK

    1.卸载现有JDK

    (1)查询是否安装Java软件:

    [root@hadoop101 opt]$ rpm -qa | grep java

    (2)如果安装的版本低于1.7,卸载该JDK:

    [root@hadoop101 opt]$ sudo rpm -e 软件包

    (3)查看JDK安装路径:

    [root@hadoop101 ~]$ which java

    2.查看软件包

    如果这块没有安装一下 java &hadoop~安装在/opt/software

    [root@hadoop101 opt]$ cd software/

    [root@hadoop101 software]$ ls

    hadoop-2.7.2.tar.gz jdk-8u144-linux-x64.tar.gz

    3.解压安装包

    JDK、hadoop /到/opt/module目录下

    [root@hadoop101 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
    4 配置环境变量
    1)先获取JDK/hadoop路径 [root@hadoop101 jdk1.8.0_144]$ pwd /opt/module/jdk1.8.0_144 [root@hadoop101 hadoop-2.7.2]$ pwd /opt/module/hadoop-2.7.22)打开/etc/profile文件 [root@hadoop101 software]$ sudo vi /etc/profile 在profile文件末尾添加JDK/hadoop路径 #JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=PATH:JAVA_HOME/bin ##HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin (3)保存后退出 :wq (4)让修改后的文件生效 [root@hadoop101 jdk1.8.0_144]$ source /etc/profile (5)测试JDK是否安装成功 [root@hadoop101 jdk1.8.0_144]# java -version java version "1.8.0_144" [root@hadoop101 jdk1.8.0_144]# hadoop version Hadoop 2.7.2 #####注意:重启(如果java -version可以用就不用重启)###### [root@hadoop101 jdk1.8.0_144]$ sync [root@hadoop101 jdk1.8.0_144]$ sudo reboot #### 3 官方案例
    Grep案例
    创建在hadoop-2.7.2文件下面创建一个input文件夹

    [root@hadoop101 hadoop-2.7.2]$ mkdir input

    将Hadoop的xml配置文件复制到input

    [root@hadoop101 hadoop-2.7.2]$ cp etc/hadoop/*.xml input

    执行share目录下的MapReduce程序

    [root@hadoop101 hadoop-2.7.2]$ bin/hadoop jar

    share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output ‘dfs[a-z.]+’

    查看输出结果

    [root@hadoop101 hadoop-2.7.2]$ cat output/*

    WordCount案例
    创建在hadoop-2.7.2文件下面创建一个wcinput文件夹

    [root@hadoop101 hadoop-2.7.2]$ mkdir wcinput

    在wcinput文件下创建一个wc.input文件

    [root@hadoop101 hadoop-2.7.2]$ cd wcinput

    [root@hadoop101 wcinput]$ touch wc.input

    编辑wc.input文件

    [root@hadoop101 wcinput]$ vi wc.input

    在文件中输入如下内容

    hadoop yarn

    hadoop mapreduce

    atguigu

    atguigu

    保存退出::wq

    回到Hadoop目录/opt/module/hadoop-2.7.2

    5. 执行程序

    [root@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput 6. 查看结果 [root@hadoop101 hadoop-2.7.2]$ cat wcoutput/part-r-00000 atguigu 2 hadoop 2 mapreduce 1 yarn 1

    二 伪分布式运行模式

    启动HDFS并运行MapReduce程序

    配置集群

    a)配置:hadoop-env.sh Linux系统中获取JDK的安装路径: [root@ hadoop101 ~]# echo $JAVA_HOME /opt/module/jdk1.8.0_144 修改JAVA_HOME 路径: export JAVA_HOME=/opt/module/jdk1.8.0_144 (b)配置:core-site.xml <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop101:9000</value> </property> <!-- 指定Hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp</value> </property> (c)配置:hdfs-site.xml <!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>1</value> </property>

    *启动集群

    (a)格式化NameNode(第一次启动时格式化,以后就不要总格式化) [root@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format (b)启动NameNode [root@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode (c)启动DataNode [root@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode

    (3)查看集群 (a)查看是否启动成功 [root@hadoop101 hadoop-2.7.2]$ jps 13586 NameNode 13668 DataNode 13786 Jps

    注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps (b)web端查看HDFS文件系统

    别忘记本地hosts 要配置解析 ip haoop10x 最好服务器也配置相关服务器hosts 主机名ip解析

    http://hadoop101:50070/dfshealth.html#tab-overview 注意:如果不能查看,看如下帖子处理

    http://www.cnblogs.com/zlslch/p/6604189.html

    (c)查看产生的Log日志 **说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。 当前目录:/opt/module/hadoop-2.7.2/logs [atguigu@hadoop101 logs] ls hadoop-atguigu-datanode-hadoop.atguigu.com.log hadoop-atguigu-datanode-hadoop.atguigu.com.out hadoop-atguigu-namenode-hadoop.atguigu.com.log hadoop-atguigu-namenode-hadoop.atguigu.com.out SecurityAuth-root.audit [atguigu@hadoop101 logs]# cat hadoop-atguigu-datanode-hadoop101.log (d)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么? [root@hadoop101 hadoop-2.7.2] cd data/tmp/dfs/name/current/ [root@hadoop101 current]$ cat VERSION clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837 [root@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/data/current/ clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837 注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。

    启动YARN并运行MapReduce程序

    配置集群

    (a)配置yarn-env.sh 配置一下JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 (b)配置yarn-site.xml <!-- Reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop101</value> </property> (c)配置:mapred-env.sh 配置一下JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 (d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml [atguigu@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml [atguigu@hadoop101 hadoop]$ vi mapred-site.xml <!-- 指定MR运行在YARN上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>

    *启动集群

    a)启动前必须保证NameNode和DataNode已经启动 (b)启动ResourceManager [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager (c)启动NodeManager [atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

    演示

    Browse the file system 可以浏览网页文件系统

    上传文件

    [root@hadoop101 hadoop-2.7.2]# hadoop fs -put a/ /

    在集群上执行jar 包 wordcount

    三 集群同步脚本&免密配置

    Rsync 远程同步工具

    rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。 rsync和scp区别:用rsync做文件的复制要比scp的速度快**,rsync只对差异文件做更新**。scp是把所有文件都复制过去

    基本语法 rsync -av $pdir/$fname $user@hadoop$host:$pdir/$fname 命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称

    集群同步脚本

    #!/bin/bash #xxx /opt/module if (($#<1)) then echo 参数不足 #参数不能小于1 (host1) exit fi f1 =$(basename $1) # 通过basename获取 文件名 pdir=$(cd -P $(dirname $1);pwd) ##获取(父)目录 ##遍历所有集群 for host in hadoop102 hadoop103 hadoop104 do #rsync -av /opt/module/jdk# rsync -av $pdir/$f1 $host:$pdir #发送远程主机 done =========================================================== #!/bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if ((pcount==0)); then echo no args; exit; fi #2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname #3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取当前用户名称 user=`whoami` #5 循环 for((host=103; host<105; host++)); do echo ------------------- hadoop$host -------------- rsync -av $pdir/$fname $user@hadoop$host:$pdir done

    chmod 777 xsync

    执行脚本 ./xsync (要发送文件目录)/opt/module/a

    SSH 无密登入配置

    密钥是一对 –

    ​ 对称加密 :加密和解密是一把钥匙

    ​ 非对称加密:加密和解密不是一把钥匙

    RSA–非对称加密

    1- 创建本地秘钥

    ssh-keygen -t rsa (一直空格就可以)

    2-把公钥拷贝要免密登入目标机器(从自己开始)

    ssh-copy-id hadoop10x

    注意 :但是这么配置 只是单向免密发送,从其它发送过来就不可以了

    将./xsync .ssh 全部都发送过去

    四 集群规划

    练习至少3台服务器
    工业环境正宗:6台机器(最少)

    解释

    对于HDFS 来说 :DN=datanode

    对于resourcemanager 来说 NM=nodemanager

    Datanode 管理集群节点存储

    Nodemanger 管理集群 cpu 和内存(资源)

    补充
    SecondaryNameNode(辅助名称节点,简称SNN): 存储fsimage,editslog; 定期合并fsimage+editslog,合并时机由检查点(checkpoint)决定,检查点由dfs.namenode.checkpoint.period 参数定义,默认3600秒。 SNN每隔一个小时从NN上备份fsimage下来 fsimage 镜像文件,系统镜像文件,系统全量文件 editslog操作日志,读写记录操作,系统增量文件 客户端向DN写数据,如果副本数是3,客户端只需要写入1分数据,然后拷贝。

    上面的图片展示了 Secondary NameNode 是怎么工作的。 首先,它定时到 NameNode 去获取edit logs,并更新到 fsimage 上。[笔者注:Secondary NameNode自己的fsimage] 一旦它有了新的 fsimage 文件,它将其拷贝回 NameNode 中。 NameNode 在下次重启时会使用这个新的 fsimage 文件,从而减少重启的时间。 Secondary NameNode 的整个目的是在 HDFS 中提供一个检查点。它只是NameNode 的一个助手节点。这也是它在社区内被认为是检查点节点的原因。

    所以NM和DN 在一台机器 不冲突哈 ~!

    对于HDFS 主机:Namenode 从机:3*DN

    对于YRAN 主机:ResourceManager 从机:3*NM

    五 完整集群配置

    1 配置免密登陆

    1. 生成密钥对 ssh-keygen -t rsa 三次回车 2. 发送公钥到本机 ssh-copy-id hadoop102 输入一次密码 3. 分别ssh登陆一下所有虚拟机 ssh hadoop103 exit ssh hadoop104 exit 4. 把/home/atguigu/.ssh 文件夹发送到集群所有服务器 xsync /home/atguigu/.ssh

    2 Ps:3 台服务器

    1 在一台机器上安装Java和Hadoop,并配置环境变量,并分发到集群其他机器 1. 拷贝文件到/opt/software,两个tar包 2. tar -zxf h"+tab" -C /opt/module 3. tar -zxf j"+tab" -C /opt/module 4. sudo vim /etc/profile

    在文件末尾添加

    JAVA_HOME

    export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

    HADOOP_HOME

    export HADOOP_HOME=/opt/module/hadoop-2.7.2

    export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin

    保存 source /etc/profile sudo xsync /etc/profile 在其他机器分别执行source /etc/profile

    ####3 所有配置文件都在$HADOOP_HOME/etc/hadoop 首先配置hadoop-env.sh,yarn-env.sh,mapred-env.sh文件,

    配置Java_HOME

    在(hadoop102)每个文件第二行添加 export JAVA_HOME=/opt/module/jdk1.8.0_144

    配置Core-site.xml
    <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:9000</value> </property> <!-- 指定Hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp</value> </property>
    配置hdfs-site.xml

    ​ ​ ​ dfs.replication ​ 3 ​ ​ ​ ​ dfs.namenode.secondary.http-address ​ hadoop104:50090 ​

    配置yarn-site.xml
    <!-- Site specific YARN configuration properties --> <!-- Reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop103</value> </property> <!-- 日志聚集功能使能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间设置7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
    配置mapred-site.xml
    mapreduce.framework.name yarn mapreduce.jobhistory.address hadoop104:10020 mapreduce.jobhistory.webapp.address hadoop104:19888

    启动历史服务器:mr-jobhistory-daemon.sh start historyserver

    配置Slaves

    hadoop102 hadoop103 hadoop104

    -----------------------------凡是碰到问题 先看日志----------------------------------

    4 集群分开

    Ps:一定是全新的 之前老的 可以删除

    xsync /opt/module/hadoop-2.7.2

    5 格式化Namenode 在hadoop102

    hdfs namenode -format

    6 启动hdfs

    start-dfs.sh

    7 启动yarn

    在配置了Resourcemanager机器上执行

    在Hadoop103上启动start-yarn.sh

    8 查看jps进程脚本&上传

    上传做mapreduce 处理
    mkdir input vim input/input abc def efg asd hadoop fs -put input / hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

    在哪配置就在哪服务器上启动—这里是hadoop104

    启动历史服务器:

    mr-jobhistory-daemon.sh start historyserver**

    9 关闭hdfs和 yarn

    如果集群出了问题

    stop-dfs.sh stop-yarn.sh stop-dfs.sh stop-yarn.sh cd $HADOOP_HOME rm -rf data logs 回到5

    10 启动NN DN RM NM…

    hadoop-daemon.sh start namenode或datanode yarn-daemon.sh start resourcemanager或nodemanager

    六 配置集群时间同步

    date—如果时间差太多 会出问题–

    1. 时间服务器配置(必须root用户)

    (1)检查ntp是否安装

    [****root****@hadoop102 桌面]# rpm -qa|grep ntp

    ntp-4.2.6p5-10.el6.centos.x86_64 fontpackages-filesystem-1.41-1.1.el6.noarch ntpdate-4.2.6p5-10.el6.centos.x86_64

    执行 service ntpd status

    如果显示正在运行 就关掉 service ntpd stop**

    chkconfig ntpd off --关闭开启自启(如果是已停状态 就无需操作)

    (2)修改ntp配置文件

    [****root****@hadoop102 桌面]# vi /etc/ntp.conf

    修改内容如下

    a)修改1(授权192.168.1.0-192.168.1.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)修改/etc/sysconfig/ntpd 文件

    [****root****@hadoop102 桌面]# vim /etc/sysconfig/ntpd

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

    SYNC_HWCLOCK=yes

    (4)重新启动ntpd服务

    [****root****@hadoop102 桌面]# service ntpd status

    ntpd 已停

    [****root****@hadoop102 桌面]# service ntpd start

    正在启动 ntpd: [确定]

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

    [****root****@hadoop102 桌面]# chkconfig ntpd on

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

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

    [****root****@hadoop103桌面]/[****root****@hadoop104桌面]crontab -e

    编写定时任务如下:

    */10 * * * * /usr/sbin/ntpdate hadoop102

    (2)修改任意机器时间

    [****root****@hadoop103桌面]# date -s “2017-9-11 11:11:11”

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

    [****root****@hadoop103桌面]# date

    说明:测试的时候可以将10分钟调整为1分钟,节省时间。

    Processed: 0.040, SQL: 9