超详解Hadoop集群环境配置,步步附有截图,一篇讲解清楚

article/2025/10/8 22:13:06

写在最前,在配置Hadoop之前,要确定已经准备好了Hadoop的准备环境,并且已经在机器上安装完了Hadoop,以及编写了一些必要的集群脚本,具体操作详情见这两篇文章
Hadoop安装及集群脚本编写
Hadoop集群准备环境搭建

一、Hadoop集群配置

1)集群部署规划

注意:

①NameNode和SecondaryNameNode不要安装在同一台服务器上。NN和2NN的关系就好像是NN的补充是2NN,如果安装在同一个机器上,机器一挂,NN和2NN全挂,完全不需要2NN对NN的补充

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

所以安装规划如下

hadoop102hadoop103hadoop104
HDFSNameNode
DataNode
DataNodeSecondaryNameNode
DataNode
YARNNodeMangerResourceManager
NodeManger
NodeManager

2)配置文件

Hadoop配置文件分为两类:默认配置文件和自定义文件

自定义文件主要有

core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml,四个文件都放在hadoop目录下的etc/hadoop路径,可以根据实际需要进行配置

自定义文件说明

文件说明
core-site.xml核心配置文件
hdfs-site.xmlhdfs配置文件
yarn-site.xmlyarn配置问及那
mapred-site.xmlmr配置文件

3)配置集群

①核心配置文件

配置core-site.xml

vim hadoop-3.1.3/etc/hadoop/core-site.xml
<?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 网页登录使用的静态用户为 lnnu --> <property> <name>hadoop.http.staticuser.user</name> <value>lnnu</value> </property> 
</configuration>

在这里插入图片描述

注意:8020端口是客户端访问集群端口

②HDFS配置文件

配置hdfs-site.xml

vim hadoop-3.1.3/etc/hadoop/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>

在这里插入图片描述

注意:9870是访问hdfs端口

③yarn配置文件

配置yarn-site.xml

vim hadoop-3.1.3/etc/hadoop/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>

在这里插入图片描述

④MapReduce配置文件

配置mapred-site.xml

vim hadoop-3.1.3/etc/hadoop/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>

在这里插入图片描述

4)配置好之后将文件分发到其他所有节点

xsync /opt/module/hadoop-3.1.3/etc/hadoop/

5)查看是否分发成功

在这里插入图片描述

二、启动集群

1)配置workers

配置workers文件,在/opt/module/hadoop-3.1.3/etc/hadoop/下

vim  /opt/module/hadoop-3.1.3/etc/hadoop/workers
hadoop102 
hadoop103 
hadoop104 

注意:文件中不允许有空格,也不允许有空行。因为集群无法识别你的空格和空行是否为一台机器
在这里插入图片描述

分发到其他节点

xsync /opt/module/hadoop-3.1.3/etc/hadoop/workers

2)启动集群

① 如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode

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

hdfs namenode -format

在这里插入图片描述

②启动HDFS

sbin/start-dfs.sh

在这里插入图片描述

③启动YARN,因为YARN配置在了hadoop103上,所以到103上启动,ResourceManager

sbin/start-yarn.sh

在这里插入图片描述

④web端查看HDFS的NameNode

浏览器:http://hadoop102:9870
在这里插入图片描述

⑤web端查看YARN的ResourceManager

浏览器:http://hadoop103:8088
在这里插入图片描述

3)集群小测试

集群启动之后,要测试是否能够正常运行,还是使用之前的官方小案例WordCount

①上传文件到集群

hadoop fs -mkdir /input
hadoop fs -put fileName /wc

在这里插入图片描述

上传大文件

hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz  / 

在这里插入图片描述

查看是否成功
在这里插入图片描述

4)配置历史服务器

①历史服务器可以在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>

在这里插入图片描述

②分发历史服务器

xsync /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml

在这里插入图片描述

③启动历史服务器

mapred --daemon start historyserver

在这里插入图片描述

④查看是否启动成功

jps

在这里插入图片描述

⑤web端查看JobHistory

http://hadoop102:19888/jobhistory
在这里插入图片描述

5)配置日志的聚集

就是把应用的日志信息上传到HDFS系统上。

日志聚集配置之后,可以方便的查看到程序运行详情,方便开发调试。

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

开启步骤:

①配置yarn-site.xml

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>

在这里插入图片描述

②分发配置

xsync /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml

在这里插入图片描述

③关闭NameManager、ResourceManager、HistoryServer

sbin/stop-dfs.sh
sbin/stop-yarn.sh
mapred  --daemon stop historyserver

在这里插入图片描述
在这里插入图片描述

④确认已经关闭

jps

在这里插入图片描述

⑤启动NameManager、ResourceManager、HistoryServer

sbin/start-dfs.sh
mapred --daemon start historyserver
sbin/start-yarn.sh

在这里插入图片描述

在这里插入图片描述

启动成功
在这里插入图片描述

⑥执行WordCount案例

hadoop  jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input/word.txt /output 

在这里插入图片描述

查看结果
在这里插入图片描述

结果内容
在这里插入图片描述
在这里插入图片描述

6)集群启动/停止总结

①各个模块分开启动/停止

HDFS:

start-dfs.sh/stop-dfs.sh

YARN:

start-yarn.sh/stop-yarn.sh

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

分别启动HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

启动/停止YARN

yarn --daemon start/stop  resourcemanager/nodemanager 

7)Hadoop集群常用脚本

①Hadoop启停脚本

编写一个脚本文件,可以启动HDFS、YARN、HistoryServer

vim /home/lnnu/bin/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 

给脚本执行权限

chmod +x myhadoop.sh

在这里插入图片描述

脚本测试

myhadoop start

在这里插入图片描述

②查看三台服务器Java进程脚本执行权限

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

添加执行权限

chmod +x jpsall

在这里插入图片描述

测试脚本

jpsall

在这里插入图片描述

测试成功,将脚本分发
在这里插入图片描述

8)常用端口号说明

端口名称Hadoop2.xhadoop3.x
NameNode
内部通信端口
8020/90008020/9000/9820
NameNode HTTP UI
(hdfs端口)
500709870
MapReduce
查看执行任务窗口
80888088
历史服务器通信端口1988819888

http://chatgpt.dhexx.cn/article/uI0YG2vN.shtml

相关文章

大数据开发之Hadoop学习3--Hadoop运行模式

Hadoop运行模式 目录 Hadoop运行模式 4.1 本地运行模式&#xff08;官方wordcount&#xff09; 4.2 完全分布式运行模式 4.2.1 虚拟机准备 4.2.2 编写集群分发脚本xsync 4.2.3 SSH无密登录配置 4.2.4 集群配置 4.2.5 群起集群 4.2.6 集群启动/停止方式总结 4.2.7 配置…

Hadoop完全分布式集群——Hadoop 配置

前面已完成VMware虚拟机安装与配置&#xff08;参考前一篇Hadoop完全分布式集群——VMware虚拟机安装与配置_夏雨和阳阳的博客-CSDN博客&#xff09;&#xff0c;下面将进行Hadoop 配置。 一、slave1、slave2节点配置修改 slave1、slave2节点都需要进行以下操作&#xff1a; …

简易员工信息管理系统

这是一个虽然简单但很有代表性和借鉴性的管理系统。没有使用现有框架SSH等&#xff0c;使用自有JavaBeanJSPServlet技术。 该系统的源码经过细心打磨&#xff0c;可以作为去Spring框架的简单Web系统开发模板使用&#xff0c;从设计模式、函数式编程、Lambda表达式、业务分层、页…

基于SSH学生请假管理系统

【A-021】基于SSH学生请假管理系统 开发环境&#xff1a; Eclipse/MyEclipse、Tomcat8、Jdk1.8 数据库&#xff1a; MySQL &#xff08;1&#xff09;管理员模块 定义一个最高级管理员&#xff0c;可以对整个系统进行查询修改等操作&#xff0c;浏览修改其他管理员的相关信息…

简单的员工信息管理系统

需求&#xff1a; 做一个简易命令行版本的员工信息管理系统 现有员工&#xff1a;张三&#xff0c;年龄23&#xff0c;工号9527&#xff1b;李四&#xff0c;年龄32&#xff0c;工号&#xff0c;007&#xff1b; 王五&#xff0c;年龄22&#xff0c;工号&a…

员工考勤系统

需求&#xff1a; 一、用户管理 1、用户列表 列表字段&#xff1a;姓名、登录名、性别、手机号、薪资、岗位、角色 列表按钮&#xff1a;编辑、启用、停用、重置密码 搜索条件&#xff1a;用户名、状态&#xff08;启用停用&#xff09; 顶部按钮&#xff1a;新增用户 导入、导…

企业如何利用OA系统轻松管理员工请休假

企业的员工想请个假&#xff0c;为什么人事和员工都在喊难&#xff1f; 员工请假麻烦&#xff1a; 不知道自己还有多少年假没有休&#xff0c;每次都要去人事那里查&#xff0c;有事请假要找领导报备交接工作&#xff0c;填完单子还要找领导签字&#xff0c;如果哪天请假领导出…

JavaEE技术的员工请假管理系统的设计与实现

摘 要 近年来&#xff0c;随着网络产业的飞速发展&#xff0c;人们的日常生活和工作方式也随之发生变化。许多公司正在把常规的工作方式与因特网相融合&#xff0c;借助因特网的力量来提升管理者的工作能力。当前很多员工请假管理系统工作都有很多问题&#xff0c;所以针对员…

人事管理系统如何做好员工考勤管理?

企业考勤管理的主要难题在于考勤、排班、假勤这三块&#xff0c;对于考勤来说&#xff0c;往往存在一些漏打卡、代打卡、打卡慢的情况&#xff1b; 对于排班&#xff0c;存在着多班次混排的情况&#xff0c;对各人员调配、设备调配、轮班作业、生产计划调整等有复杂调配需求&a…

【023】Springboot+vue+mysql员工考勤管理系统(多角色登录、请假、打卡)(含源码、数据库、运行教程)

前排提示&#xff1a;项目源码已放在文末 开发环境&#xff1a;SpringbootMysqlVueNodejsMavenJDK1.8 技术栈&#xff1a;spring-boot、mysql、mybatis-plus、druid连接池。 部分功能及代码介绍&#xff1a; 1.员工类型&#xff1a;部门经理、副总经理、总经理、人事人员、财务…

【024】Vue+Springboot+mysql员工考勤管理系统(多角色登录、请假、打卡)(含源码、数据库、运行教程、实验报告)

前排提示&#xff1a;项目源码已放在文末 基于VueSpringbootmysql员工考勤管理系统(多角色登录、请假、打卡) 开发环境&#xff1a;SpringbootMysqlVueNodejsMavenJDK1.8 技术栈&#xff1a;spring-boot、mysql、mybatis-plus、druid连接池。 与【023】相比&#xff0c;【024…

java企业员工考勤请假工资人事管理系统springboot+vue

springboot是spring家族中的一个全新框架&#xff0c;用来简化spring程序的创建和开发过程。在以往我们通过SpringMVCSpringMybatis框架进行开发的时候&#xff0c;我们需要配置web.xml&#xff0c;spring配置&#xff0c;mybatis配置&#xff0c;然后整合在一起&#xff0c;而…

学生请假管理系统--UML画图

参与者 学生、班主任、学工处、学校领导、教务管理系统 功能 学生 销假请假/续假查看&#xff08;请假/销假/续假&#xff09;进度查询个人请假记录 班主任 查询班级请假记录审批学生请假/销假/续假信息 学工处 审批学生请假/销假/续假信息设置规则查询数据 学校领导 …

员工管理系统

一.项目介绍&#xff1a; 该项目主要是实现了管理员和普通用户登录功能&#xff0c;登录后会出现相应的功能菜单。管理员的功能菜单包括查询、修改、添加用户、删除用户、查询历史记录、退出功能&#xff0c;其中查询分为按人名查找和查找所有&#xff0c;修改可以按照…

ssm员工考勤签到请假管理系统 idea maven

1、管理员账号&#xff1a;abo 密码&#xff1a;abo 2、开发环境为Eclipse/idea&#xff0c;数据库为mysql 使用java语言开发。 3.eclipse配置好tomcat 即可打开首页 idea tomcat部署处 必须用项目名 ,不能带_war 4.数据库连接src\main\resources\config.properties中修改 5…

【员工管理系统】

员工管理系统 前言需求分析系统设计系统框图所需技术 系统实现编写代码测试 前言 这是一个使用epoll实现TCP并发服务器&#xff0c;并让客户端登录服务器可以进行员工的管理&#xff0c;员工的信息存储在sqlite数据库中&#xff0c;对数据库进行增删改查实现对员工的添加&…

一个简单的请假系统

本项目是一个简单的spring项目&#xff0c;使用了springmybatis&#xff0c;实现数据的增&#xff0c;删&#xff0c;查&#xff0c;和poi的基本使用&#xff0c;导出数据库中的请假信息到excel中等一些基本的功能。有很多不足之处欢迎大家指出&#xff0c;后面慢慢学习会慢慢优…

Java项目:JSP员工出差请假考勤管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为后台管理系统&#xff1b; 管理员角色包含以下功能&#xff1a; 登录,首页,考勤记录增删改查,假期申请记录增删改查,出差申请记录增删…

适合学生写的请假管理系统

学生请假管理系统 可以浅浅的看一下目 录了解一下 第1章 概述 6 1.1案例功能简介 6 1.2大纲 6 1.3总体设计 8 1.4数据库 8 第2章 设计步骤及实现 11 2.1 注册并登录学生请假管理系统 11 2.2 用户管理界面 15 2.3 请假管理界面 18 2.4 公告管理界面 21 2.5 本分源代码的展示 24…

基于javaweb的员工出差请假考勤管理系统(java+jsp+layui+html+servlet+mysql)

基于javaweb的员工出差请假考勤管理系统(javajsplayuihtmlservletmysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计&#xff0c;大作业&#xff0c;毕业设计&#xff0c;项目练习&#xff0c;学习演示等…