飞道的博客

CentOS 7.7 安装 Hadoop 3.1.3集群

365人阅读  评论(0)


1.集群角色介绍

  Hadoop集群,具体来说包含两个集群:hdfs集群yarn集群。两者逻辑上分离,但物理上常在一起。

hdfs集群:
  负责海量数据的存储工作。集群中的角色主要有 NameNodeDataNodeSecondaryDataNode

yarn集群:
  负责海量数据运算时的资源调度。集群中的角色主要有ResourceManagerNodeManager

各个角色职责:
  请参考文章:https://blog.csdn.net/lzb348110175/article/details/109109857 (5.Hadoop组成)部分进行了解

2.安装Hadoop集群前提

  1. 已安装 JDK【如何安装,参考: CentOS 7 安装 JDK8
  2. 关闭防火墙【线上环境虽然不建议关闭防火墙,一般公司都会有最外层保障安全的防火墙,大数据使用端口特别多,所以此处需要关闭防火墙】【如何关闭,参考:Linux关闭防火墙
  3. SSH无密登录【如何配置,参考: Linux免密登陆配置
  4. 已编译好的Hadoop tar.gz 包【你可以直接官网下载,地址:Hadoop.tar.gz历史版本下载,如果好奇,你也可以使用源码包方式自己编译,如何编译?参考:Hadoop 2.10.1源码编译(Apache版)

3.集群安装

1.集群部署分布规划

hadoop201
(192.168.204.201)
hadoop202
(192.168.204.202)
hadoop203
(192.168.204.203)
HDFS NameNode
DataNode

DataNode
SecondaryNameNode
DataNode
YARN
NodeManager
ResourceManager
NodeManager

NodeManager

2.hosts配置

 在hadoop201、hadoop202、hadoop203三台机器上,分别使用命令:vim /etc/hosts,进行 hosts 配置

192.168.204.201 hadoop201
192.168.204.202 hadoop202
192.168.204.203 hadoop203

3.配置文件说明

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

默认配置文件:

要获取的默认文件 文件存放在 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

自定义配置文件:

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

4.开始安装

tar.gz包所在路径:/opt/software

JDK8安装路径:/opt/module/jdk1.8.0_261(该路径在Hadoop集群配置中会使用,提前将Java环境变量配置好)

将 hadoop-3.1.3.tar.gz 解压缩到 /opt/module 目录下

hadoop集群所有的配置,均在 /opt/module/hadoop-3.1.3/etc/hadoop 目录下

根据集群部署分布规划

  ①NameNode 在 hadoop201 安装,SecondaryNameNode在hadoop203安装,DataNode分布在三台节点上;

  ②ResourceManager在hadoop202安装,NodeManager分布在三台节点上。(提示:NameNode 和 ResourceManager尽量不要分布在一台机器上,分别是 HDFS 和 YARN 的老大级角色,比较耗费资源,最好均匀分布在集群所有节点中

Ⅰ. hadoop201 配置

1.核心配置文件

1.配置 core-site.xml
[root@hadoop201 hadoop]# vim core-site.xml

在该文件中编写如下配置:

<!-- 指定HDFS中NameNode的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop201:8020</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录(自定义即可) -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 hadoop -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>hadoop</value>
</property>

说明:
  Hadoop 3.x 版本,支持直接在Web端删除文件,如果没有配置静态用户(<hadoop.http.staticuser.user>),删除则会提示无权限

2.HDFS配置文件

1.配置 hdfs-site.xml
[root@hadoop201 hadoop]# vim hdfs-site.xml

在该文件中编写如下配置:

<!-- 指定HDFS副本的数量(默认为3,可自定义) -->
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>
<!-- NameNode(nn) web 端访问地址-->
<property>
    <name>dfs.namenode.http-address</name>
    <value>hadoop201:9870</value>
</property>
<!-- Secondary Name Node(2nn) web 端访问地址-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop203:9868</value>
</property>

3.YARN配置文件

1.配置 yarn-site.xml
[root@hadoop201 hadoop]# vim yarn-site.xml

在该文件中增加如下配置:

<!-- MapReduce获取数据的方式(推荐:MR 走 shuffle) -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 指定Yarn的ResourceManager的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop202</value>
</property>
<!-- 环境变量的继承(解决Hadoop 3.1.3版本的小bug,3.1.3以后的版本,whitelist可以不配置) -->
<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>

4.MapReduce配置文件

1.配置 mapred-site.xml
[root@hadoop201 hadoop]# vim mapred-site.xml

在该文件中增加如下配置:

<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

5.集群节点配置

1.配置workers
[root@hadoop201 hadoop]# vim workers

在该文件中增加如下内容:

hadoop201
hadoop202
hadoop203

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

Ⅱ. 集群分发

  将 hadoop201 机器上,已经配置好的 hadoop 分发到 hadoop202hadoop203 两台机器上。此处可以使用 scprsync。也可以使用自定义分发脚本xsync,此处使用xsync

1.scp(secure copy)安全拷贝工具

  scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)如何使用参考:Linux命令—scp

2.rsync 远程同步工具

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

  rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。如何使用参考:Linux命令—rsync

3.xsync 集群分发脚本

  xsync 并不是 Linux为我们提供的工具,而是我们自己编写的一个脚本。在编写 xsync 时,会使用到 rsync 。所以最好先 yum install rsync 安装好这个工具。(需要集群每个节点都安装好这个工具

编写xsync脚本:

[root@hadoop201 某个目录]# 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)      #cd -P 获取软链接真实路径
       #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 具有执行权限

[root@hadoop201 某个目录]# chmod 777 xsync

调用脚本方式:xsync 文件名称

[root@hadoop201 某个目录]# xsync 文件名称

注意:如果将 xsync 放到你指定的某个目录下仍然不能实现全局使用,你可以根据已经配置好的 PATH 环境变量,echo $PATH来查看环境变量,将xsync移动到指定目录下,一般是移动到当前用户的bin目录下。

echo $PATH
/home/hadoop/bin 即:当前登录用户的bin目录(只有当前用户可用)
/usr/local/bin,放到该目录下也可以,所有用户均可使用该命令

  将hadoop201机器已经配置好的 hadoop 文件,调用脚本:xsync 文件名称 分发到 hadoop202hadoop203 两台机器(如未配置免密登陆,则需要输入密码,免密配置:参考: Linux免密登陆配置

分发完成后,可以去 hadoop202hadoop203节点/opt/module 路径下查看是否有 hadoop-3.1.3 文件,是否分发成功。

5.配置hadoop环境变量

  此处在 profile.d 目录下创建 hadoop.sh文件进行配置,同vim /etc/profile 方式一致。了解请参考:Linux 设置全局变量

[root@hadoop201 hadoop]# vim /etc/profile.d/my_env.sh

在该文件中编写如下代码:

export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

之后让文件生效

source /etc/profile.d/my_env.sh

使用命令 hadoop version 查看是否配置成功

[hadoop@hadoop201 module]$ hadoop version
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar

使用 xsync 将 hadoop 环境变量,分发到 hadoop202、hadoop203 节点

hadoop202hadoop203 节点,调用 source 命令让文件生效

[root@hadoop202 hadoop]# source /etc/profile.d/hadoop.sh

[root@hadoop203 hadoop]# source /etc/profile.d/hadoop.sh

6.初始化NameNode

  如果集群是第一次启动,需要格式化NameNode,切记只需要格式化 NameNode 即可。(NameNode 在 hadoop 201 节点,所以需要在 hadoop201 节点格式化即可,其他节点不需要格式化!!!)

  由于已经配置环境变量,可以在任意目录执行以下命令:

[root@hadoop201 hadoop]# hadoop namenode -format

  如下图,格式化 NameNode 成功。NameNode不要随便格式化,会清空所有数据。如果格式化异常可能会导致 NameNode 和 DataNode 节点 VERSION 不一致,导致集群启动失败。

注意格式化之前,一定要先停止上次启动的所有 namenode 和 datanode 进程,同时要删除core-site.xml配置的<hadoop.tmp.dir>变量指定的data 和 logs 数据)

7.集群启动

注意:NameNode 和 ResourceManger 如果不是同一台机器,不能在 NameNode 上启动 YARN,应该在 ResouceManager 所在节点启动YARN。

Ⅰ. 启动HDFS

  NameNode 在 hadoop201 节点配置,使用命令start-dfs.sh在该节点启动 HDFS(前提是:要配置好hadoop201 到 hadoop202 和 hadoop203 的免密登陆)。(已经配置环境变量,可以在任意目录执行以下命令:)

jps 命令查看启动情况:符合预期集群规划

[root@hadoop201 hadoop-3.1.3]# jps
15321 Jps
14954 NameNode
15068 DataNode

[root@hadoop202 hadoop-3.1.3]# jps
14183 Jps
14107 DataNode

[root@hadoop203 hadoop-3.1.3]# jps
13446 Jps
13275 DataNode
13372 SecondaryNameNode

亦可:各个服务组件逐一启动/停止
1)分别启动/停止HDFS(组件)
hdfs --daemon start / stop namenode / datanode / secondarynamenode

亦可:整体启动/停止HDFS
2)整体启动/停止HDFS
start-dfs.sh / stop-dfs.sh

Ⅱ. 启动YARN

  ResourceManager 在 hadoop202 节点配置,使用命令start-yarn.sh在该节点启动 YARN。(前提是:要配置好hadoop202 到 hadoop201 和 hadoop203 的免密登陆)。(已经配置环境变量,可以在任意目录执行以下命令:)

jps 命令查看启动情况:符合预期集群规划

[root@hadoop202 hadoop]# jps
14739 Jps
14107 DataNode
14300 ResourceManager
14412 NodeManagerr

[root@hadoop201 hadoop]# jps
15492 Jps
14954 NameNode
15068 DataNode
15390 NodeManager

[root@hadoop203 hadoop]# jps
13632 Jps
13528 NodeManager
13275 DataNode
13372 SecondaryNameNode

亦可:各个服务组件逐一启动/停止
1)分别启动/停止Yarn(组件)
yarn --daemon start / stop resourcemanager / nodemanager

亦可:整体启动/停止YARN
2)整体启动/停止YARN
start-yarn.sh / stop-yarn.sh

8.Web端查看启动情况

Ⅰ. 查看HDFS文件系统

地址:http://hadoop201:9870

注意:如果进入界面,发现规划的3台DataNode,界面却提示只有一个DataNode节点,极大可能是防火墙原因。如关闭防火墙,切记重启网络使其生效,然后重新启动hadoop集群

Ⅱ. 查看YARN页面

地址:http://hadoop202:8088

Ⅲ. 查看SecondaryNameNode页面

地址:http://hadoop203:9868

注意:打开 SecondaryNamenode information管理页面,没有任何信息提示。Hadoop查看Secondary Namenode管理页面无信息的解决办法,参考:https://blog.csdn.net/adsl624153/article/details/100040310,感谢 loetca 博主的文章帮助

此处摘录一下:

1.打开浏览器的开发者工具的Console,发现如下提示:
dfs-dust.js:61 Uncaught ReferenceError: moment is not defined
at Object.date_tostring (dfs-dust.js:61)
at Object.dust.filter (dust-full-2.0.0.min.js:1)
at Chunk.reference (dust-full-2.0.0.min.js:1)
at body_1 (eval at dust.loadSource (dust-full-2.0.0.min.js:1), :1:572)
at Chunk.section (dust-full-2.0.0.min.js:1)
at body_0 (eval at dust.loadSource (dust-full-2.0.0.min.js:1), :1:77)
at Object.dust.load (dust-full-2.0.0.min.js:1)
at Object.dust.render (dust-full-2.0.0.min.js:1)
at render (snn.js:61)
at Object.finished_request (snn.js:38)

2.解决办法:
进入:hadoop/share/hadoop/hdfs/webapps/static/dfs-dust.js 修改
查看 dfs-dust.js 的第61行

'date_tostring' : function (v) {
   
	return moment(Number(v)).format('ddd MMM DD HH:mm:ss ZZ YYYY');
},

找不到moment函数。在此打断点,并修改函数返回值为:

'date_tostring' : function (v) {
   
	return new Date(Number(v)).toLocaleString();
},

修改后如下图所示:(修改后不需要重启)

使用xsyncdfs-dust.js 文件分发至集群其它节点

注意::2nn 部署在hadoop203节点,看似我们只需在该节点修改。但是如果只在该节点修改,而不分发到其他节点,就会导致3台机器内容dfs-dust.js 文件不同,从而导致访问Hadoop Web页面时出现这个提示:NameNode is still loading. Redirecting to the Startup Progress page.

问题参考:NameNode is still loading. Redirecting to the Startup Progress page

提示:后期Hadoop高可用配置的都是 HA 版本,采用两个namenode方式,启动2nn还会消耗性能,所以2nn到时候就不会用到了。
Hadoop HA版本,参考:预留链接

9.测试集群

Ⅰ. 测试HDFS文件系统

1.在HDFS文件系统上创建一个input文件夹
[root@hadoop201 hadoop]# hadoop fs -mkdir -p /input

2.编辑 text.txt,写入如下内容
Hadoop Hive Apache
James Mary
Hadoop Mary

3.将 text.txt 上传到 hdfs /input 目录下
[root@hadoop201 hadoop]# hadoop fs -put test.txt /input

4.查看上传的文件
[root@hadoop201 hadoop]# hadoop fs -ls /input
Found 1 items
-rw-r–r-- 3 hadoop supergroup 42 2021-04-08 16:45 /input/test.txt

5.查看上传的文件内容
[root@hadoop201 hadoop]# hadoop fs -cat /input/test.txt
Hadoop Hive Apache
James Mary
Hadoop Mary

6.HDFS页面查看文件

Ⅱ. 测试YARN调度系统

  Hadoop 为我们预装了一些测试案例供我们使用,位于 share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar 目录下,现在来运行 MapReduce 程序,对 HDFS 上传的 test.txt 进行 wordcount 计算

1.执行示例程序
[root@hadoop201 hadoop]# hadoop jar /usr/local/env/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

参数介绍:
1.hadoop :已经配置环境变量,可以在任意目录执行(该命令位于 /opt/module/hadoop-3.1.3/bin 目录下)
2. jar:执行jar包
3.hadoop-mapreduce-examples-3.1.3.jar:示例程序jar包
4.wordcount:wordcount主程序入口
5./input:输入文件地址
6./output:输出文件地址

1.查看计算完成,文件输出地址
[root@hadoop201 hadoop]# hadoop fs -ls /output
Found 2 items
-rw-r–r-- 3 hadoop supergroup 0 2021-04-08 16:39 /output/_SUCCESS
-rw-r–r-- 3 hadoop supergroup 51 2021-04-08 16:39 /output/part-r-00000

2.查看计算结果
[root@hadoop201 hadoop]# hdfs dfs -cat /output/part-r-00000
Apache 1
Hadoop 2
Hive 1
James 1
Mary 2

3.HDFS页面查看结果文件

10.配置历史服务器 & 日志聚集

Ⅰ. 历史服务器配置

  Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。默认情况下,Hadoop历史服务器是没有启动的,我们可以通过下面的命令来启动Hadoop历史服务器

1.配置 mapred-site.xml
[root@hadoop201 hadoop]# vim mapred-site.xml

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

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

Ⅱ. 日志聚集配置

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


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

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

1.配置 yarn-site.xml
[root@hadoop201 hadoop]# vim yarn-site.xml

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

<!--开启日志聚合功能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
<!--日志聚合到一个文件夹中(此处指定为hdfs:/hadoop/logs 文件夹下) -->
<property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/hadoop/logs</value>
</property>
<!--设置日志聚集服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://hadoop201:19888/jobhistory/logs</value>
</property>

求助:初学者一枚,暂时还不是太了解 <yarn.log.server.url> 这个服务器地址怎么用,有知道的可以评论告诉我一下哈。

Ⅲ. 分发配置

mapred-site.xmlyarn-site.xml 修改后的文件,分发到 集群所有节点(此处在hadoop201修改,并分发到 hadoop202、hadoop203)

[root@hadoop201 hadoop]# xsync mapred-site.xml
[root@hadoop201 hadoop]# xsync yarn-site.xml

Ⅳ. 启动历史服务器

1.使用命令,启动历史服务器
[root@hadoop201 hadoop]# mapred --daemon start historyserver
此命令不会有任何输出信息

注意:因为已经配置HADOOP_HOME环境变量,所以你可以在任意目录执行(该命令位于 /opt/module/hadoop-3.1.3/bin 目录下)

2.查看历史服务器启动情况
[root@hadoop201 hadoop]# jps
4864 JobHistoryServer (启动成功)
4085 NameNode
4214 DataNode
5480 Jps
4462 NodeManager

3.再次点击 History,便可以看到历史信息了
[root@hadoop201 hadoop]# hdfs dfs -rm -r /output  (执行MR wordcount程序,输出目录不能够是已经存在路径,所以先删除)
Deleted /output

再次执行 wordcount MR 程序,便能够看到 MapReduce 执行过程、历史情况、已经历史信息保存到 /hadoop/logs 目录下,如下图所示:(图片为旧图,表达的意思一样,仅供参考)



4.查看历史日志
  http://hadoop201:19888/jobhistory

11.集群时间同步 (该配置可有可无,视是否能连接外网情况而配置)

!!!注意:如果集群可以连接外网,这一步骤可以省略,统一同步外网时间即可。如果集群不能访问外网,则需要配置集群时间同步。

  定时任务执行时,就需要保证集群之间时间的同步。一个任务指定凌晨 1:00 执行,然而集群之间时间不一致,就会出现想象不到的惊喜了。所以需要保证集群之间时间的一致,此时就需要配置集群之间时间的同步机制了。

时间同步实现方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。此处需要用到 Linux 为我们提供的一个定时服务 crontab ,如何使用可以参考:Linux命令—crontab

Ⅰ. hadoop201作为时间服务器

hadoop201节点进行配置,配置时间同步具体流程:(必须root用户操作)

1.安装ntp
[root@hadoop201 hadoop]# rpm -qa | grep ntp(检查ntp是否安装,什么也没查到说明没安装)
[root@hadoop201 hadoop]# yum install ntp

2.修改ntp配置文件
[root@hadoop201 hadoop]# vim /etc/ntp.conf

修改1:
将17行注释打开(授权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

修改2:
注释掉21-24 四行(集群在局域网中,不使用其他互联网上的时间)
修改前
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:
在末尾,添加如下配置(保证当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10

3.修改 /etc/sysconfig/ntpd 文件
[root@hadoop201 hadoop]# vim /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes

4.重启ntpd服务
[root@hadoop201 hadoop]# service ntpd restart (重启)
[root@hadoop201 hadoop]# service ntpd status (查看启动是否成功)

5.设置ntpd服务开机启动
[root@hadoop201 hadoop]# chkconfig ntpd on
Note: Forwarding request to ‘systemctl enable ntpd.service’.
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

Ⅱ. 集群其他节点配置

在集群其他节点(hadoop202、hadoop203)进行配置,同步 hadoop201 节点时间。(必须root用户操作)

1.安装ntp(所有节点均需安装ntp)
[root@hadoop202 hadoop]# yum install ntp
[root@hadoop203 hadoop]# yum install ntp

2.在其他机器配置1分钟与时间服务器同步一次
[root@hadoop202 hadoop]# crontab -e
编写定时任务如下:
*/1 * * * * /usr/sbin/ntpdate hadoop201

3.修改任意机器时间(修改hadoop202节点时间)
[root@hadoop202 hadoop]# date -s "2018-5-28 22:22:22"
Mon May 28 22:22:22 CST 2018

4.一分钟后查看机器hadoop202是否与时间服务器 hadoop201同步
[root@hadoop202 hadoop]# date
Mon May 28 22:22:29 CST 2018(修改后)
1 minutes later
[root@hadoop202 hadoop]# date
Thu Oct 29 14:45:37 CST 2020(已经同步成功)

注意:线上环境,为了保证性能开销问题,可以将1分钟调整为10分钟等,视情况而定。

至此,Hadoop集群(基础版)安装完毕。

接下来还会有 HDFS(HA版)安装哦。一个HDFS集群两个NameNode节点的情况。


博主写作不易,加个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

我不能保证所写的内容都正确,但是可以保证不复制、不粘贴。保证每一句话、每一行代码都是亲手敲过的,错误也请指出,望轻喷 Thanks♪(・ω・)ノ


转载:https://blog.csdn.net/lzb348110175/article/details/115477800
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场