当前位置: 首页 > news >正文

Hadoop完全分布式安装

Hadoop完全分布式安装

一.集群搭建前期准备

1.三台机器防火墙都是关闭的

2.确保三台机器网络配置畅通

3.三台机器确保/etc/hosts⽂件配置了ip和hostname的映射关系

4.确保三台机器配置了ssh免密登录认证

二.前期环境搭建 免密登录

1.修改主机名为server1,配置hosts文件

vi /etc/hosts 192.168.61.2 master 192.168.61.3 slave1 192.168.61.4 slave2

2.下载相关软件

net-tool:工具包集合,包含ifconfig等命令 yum install -y net-tools 实时同步文件: yum install -y rsync

3.克隆三台机器后设置免密登录(三台机器都需要设置)

生成公钥与私钥(三次回车) ssh-keygen 向目标主机发送公钥(输入密码) ssh-copy-id slave1 ssh-copy-id slave2 也需要对自己设置免密 ssh-copy-id master

三.安装jdk和Hadoop

1.上传安装包至/opt下的新文件夹中,module(存放数据)sofeware(存放安装包)

2.解压文件至/opt/module中

tar -zxvf hadoop-2.7.7.tar.gz -C /opt/module/ tar -zxvf jdk-8u333-linux-x64.tar.gz -C /opt/module/

四.配置环境变量和文件(Hadoop配置文件位于/opt/module/hadoop-2.7.7/etc/hadoop下)

1.配置环境变量

vi /etc/profile 在文件末尾添加,将路径更改为你的安装路径 export JAVA_HOME=/opt/module/jdk1.8.0_333 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/opt/module/hadoop-2.7.7 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root 保存退出 source /etc/profile 使环境变量立即生效 输入命令 java -version 验证 JDK 是否安装成功:

os_id=img-tOURAN5U-1717494837348)

2.配置hadoop-env.sh 文件

vi hadoop-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_333

3.配置核心文件core-site.xml

vi core-site.xml <configuration> <!-- 指定 NameNode 的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://master:8020</value> </property> <!-- 指定 Hadoop 数据的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.7/data</value> </property> <!-- 配置 HDFS 网页登录使用的静态用户为master--> <property> <name>hadoop.http.staticuser.user</name> <value>master</value> </property> </configuration>

4.HDFS 配置文件hdfs-site.xml

vi hdfs-site.xml <configuration> <!-- nn(NameNode) web 端访问地址--> <property> <name>dfs.namenode.http-address</name> <value>master:9870</value> </property> <!-- 2nn(SecondaryNameNode) web 端访问地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave2:9868</value> </property> </configuration>

5.YARN 配置文件yarn-site.xml

vi 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>slave1</value> </property> <!-- 开启日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置日志聚集服务器地址 --> <property> <name>yarn.log.server.url</name> <value>http://master:19888/jobhistory/logs</value> </property> <!-- 设置日志保留时间为 7 天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration>

6.MapReduce 配置文件mapred-site.xml(将mapred-site.xml.template改名成mapred-site.xml即可 mv命令)

vi mapred-site.xml <configuration> <!-- 指定 MapReduce 程序运行在 Yarn 上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 历史服务器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <!-- 历史服务器 web 端地址 -->ha <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>

6.配置workers/slaves文件

vi workers/slaves 添加主机 master slave1 slave2 注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行

7.文件分发

我们上面的操作都只是在主节点server1中进行,现在我们需要把所有文件分发给从机server2server3

分发环境变量 rsync -r /etc/profile slave1:/etc/profile rsync -r /etc/profile slave2:/etc/profile 分发 JDK 和 Hadoop scp -r /opt/module slave1:/opt scp -r /opt/module slave2:/opt source /etc/profile 使环境变量立即生效

五.启动集群

如果集群是第一次启动,则需要先格式化 NameNode 节点

hdfs namenode -format

格式化完成后,启动集群

在主节点中运行 start-dfs.sh 在 ResourceManager 节点中运行 start-yarn.sh 或者 在主节点中运行 start-all.sh 在 ResourceManager 节点中运行 start-yarn.sh 在主节点中启动历史服务器 mr-jobhistory-daemon.sh start historyserver

启动完成后,输入jps命令检查各节点是否正常:

在本地浏览器中查看 Hadoop web 界面:http://192.168.61.2:9870

六.注意事项

如果出现root@server1’s password: server1: Permission denied, please try again.

那就再配一次ssh免密登录,三台机器都配一遍

七.集群规划

server1server2server3
HDFSNameNodeDataNodeDataNodeSecondaryNameNodeDataNode
YARNNodeManagerResourceManagerNodeManagerNodeManager

节点分析

名称作用
NameNode也称为 nn,管理文件系统的命名空间,维护文件系统树以及整个树上所有文件和目录,负责协调集群中的数据存储
SecondaryNameNode帮助 NameNode 缓解压力,合并编辑日志,减少 NameNode 启动时间
ResourceManager一个仲裁整个集群可用资源的主节点,帮助 YARN 系统管理其上的分布式应用
NodeManagerYARN 中单节点的代理,它管理 Hadoop 集群中单个计算节点
DataNode负责真正存储数据的节点,提供来自文件系统客户端的读写请求
http://www.jsqmd.com/news/489401/

相关文章:

  • IDEA各版本支持的Java 版本和功能
  • 【HTTP】HTTP请求方法与状态码(全体系知识总结+附表格)
  • Windows 10 RS2及以上系统中使用TDL的注意事项:IRQL级别变化与驱动开发调整
  • 前端实现网页转PDF矢量文件,高清还原网页内容
  • 我用 OpenClaw 7 天,砍掉了 80% 的重复沟通
  • 骑砍2霸主MOD开发(10)-游戏实例GameEntity
  • 为什么说数字化转型非常重要?2026企业级AI Agent与RPA选型实测指南
  • 前端面试基础知识整理【Day-11】
  • 贡献者必读:如何参与SIMP开源项目并提交高质量代码
  • 【雷达干扰】基于CFastICA交叉极化干扰对消-独立成分分析附Matlab代码
  • leetcode副产品:Deepseek老师讲HashSet(待阅读)
  • 【状态估计】基于卡尔曼滤波器实现月球陨石坑导航附Matlab代码
  • Spring Boot配置优先级详解
  • 【亲测免费】 探索知识图谱的力量: rahulnyk/knowledge_graph 项目详解
  • 基于微信小程序实现学生购电小程序管理系统【附项目源码】计算机毕业设计
  • 【数字信号调制】基于8相移键控8-PSK调制数字通信系统(含模拟噪声信道上的信号传输,包括调制、噪声添加、解调以及符号和比特错误率的性能评估)附Matlab代码
  • OpenCode 的 skills 网站相关信息
  • 好用的软件、网站、插件记录
  • JavaScript性能优化实战冶懒
  • 【资源分配】基于强化学习Q-Learning实现DSA认知无线网络资源分配附Matlab代码
  • 推荐:Jib — 容器化你的Java应用的新选择!
  • Spring全家桶框架篇
  • sebastian/code-unit核心组件解析:从ClassUnit到TraitMethodUnit
  • 粒子群算法PSO-AHP模型在综合评价中的构建及应用附Matlab代码
  • 2026年热门的高校就业指导中心方案厂家推荐:高校就业指导中心方案设备/高校就业指导中心方案开发/高校就业指导中心方案采购优质公司推荐 - 行业平台推荐
  • 华为eNSP三层交换机实验全解析
  • 消息队列篇
  • sql2o配置与实战:5分钟上手的数据库结果映射工具
  • 基于深度置信网络(DBN)与模糊神经网络(FNN)分类附Matlab代码
  • 猜数字小游戏来了~(冲冲冲!)