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

hadoop 集群部署

你现在需要的是一份基于 3 个节点部署 Hadoop 3.3.5 完全分布式集群 的完整指南,我会把节点规划、环境准备、配置修改、集群启动和验证都讲清楚,步骤清晰且适配新手操作。

一、集群规划(3节点)

先明确 3 个节点的角色分工(推荐配置):

节点主机名 IP 示例 角色
node1 192.168.65.110 NameNode、ResourceManager
node2 192.168.65.111 DataNode、NodeManager
node3 192.168.65.112 DataNode、NodeManager、SecondaryNameNode

注意:所有操作先在 node1 完成,再同步到 node2、node3,避免重复工作。

二、全节点环境准备(必做)

1. 基础环境统一(所有节点执行)

# 1. 关闭防火墙和 SELinux
systemctl stop firewalld && systemctl disable firewalld
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config# 2. 配置主机名(每个节点对应修改)
# node1 执行
hostnamectl set-hostname node1
# node2 执行
hostnamectl set-hostname node2
# node3 执行
hostnamectl set-hostname node3# 3. 配置 hosts 文件(所有节点执行,IP 替换为你的实际地址)
cat >> /etc/hosts << EOF
192.168.65.110 node1
192.168.65.111 node2
192.168.65.112 node3
EOF# 4. 安装依赖(所有节点)
yum install -y wget ntpdate net-tools
# 同步时间(避免集群时间不一致)
ntpdate ntp.aliyun.com

2. 创建 hadoop 用户并配置免密登录(所有节点)

# 1. 创建 hadoop 用户(所有节点)
useradd hadoop && passwd hadoop  # 密码建议统一,如 hadoop123
echo "hadoop ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers# 2. 切换到 hadoop 用户,生成密钥(仅 node1 执行)
su - hadoop
ssh-keygen -t rsa  # 一路回车,不设置密码# 3. 免密登录所有节点(包括自身,node1 执行)
ssh-copy-id hadoop@node1
ssh-copy-id hadoop@node2
ssh-copy-id hadoop@node3# 测试免密登录(node1 执行,无密码提示即成功)
ssh node2
ssh node3

3. 安装 JDK 8(所有节点)

su - hadoop
# 安装 OpenJDK 8
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel# 配置 JAVA_HOME(所有节点)
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> ~/.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
source ~/.bashrc# 验证
java -version  # 输出 JDK 8 版本即可

三、Hadoop 安装与配置(核心步骤)

1. 下载解压 Hadoop(仅 node1 执行,之后同步到其他节点)

su - hadoop
# 创建安装目录
mkdir -p /usr/local/hadoop# 下载 Hadoop 3.3.5
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz# 解压
tar -zxvf hadoop-3.3.5.tar.gz -C /usr/local/hadoop --strip-components=1# 配置 HADOOP_HOME
echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc
echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> ~/.bashrc
source ~/.bashrc# 验证
hadoop version  # 输出 3.3.5 版本即可

2. 同步 Hadoop 目录到 node2、node3(node1 执行)

su - hadoop
scp -r /usr/local/hadoop node2:/usr/local/
scp -r /usr/local/hadoop node3:/usr/local/# 同步环境变量(node2、node3 执行)
echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc
echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> ~/.bashrc
source ~/.bashrc

3. 修改核心配置文件(仅 node1 执行,之后同步到其他节点)

所有配置文件路径:/usr/local/hadoop/etc/hadoop/

(1)hadoop-env.sh(指定 JAVA_HOME 和用户)
# 编辑文件
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh# 添加/修改以下内容
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HDFS_NAMENODE_USER="hadoop"
export HDFS_DATANODE_USER="hadoop"
export HDFS_SECONDARYNAMENODE_USER="hadoop"
export YARN_RESOURCEMANAGER_USER="hadoop"
export YARN_NODEMANAGER_USER="hadoop"
(2)core-site.xml(默认文件系统 + 临时目录)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- NameNode RPC 地址(node1:9000) --><property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><!-- Hadoop 临时目录(所有节点需手动创建) --><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/tmp</value></property><!-- 关闭权限检查(新手测试) --><property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.hadoop.groups</name><value>*</value></property>
</configuration>
(3)hdfs-site.xml(HDFS 核心配置)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- 副本数(3节点设为 2,避免单节点故障) --><property><name>dfs.replication</name><value>2</value></property><!-- NameNode Web UI 端口(3.x 默认为 9870) --><property><name>dfs.namenode.http-address</name><value>node1:9870</value></property><!-- SecondaryNameNode 地址(指定 node3) --><property><name>dfs.namenode.secondary.http-address</name><value>node3:50090</value></property><!-- 关闭权限检查 --><property><name>dfs.permissions.enabled</name><value>false</value></property>
</configuration>
(4)yarn-site.xml(YARN 配置)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- ResourceManager 地址(node1) --><property><name>yarn.resourcemanager.address</name><value>node1:8032</value></property><!-- ResourceManager Web UI 地址 --><property><name>yarn.resourcemanager.webapp.address</name><value>node1:8088</value></property><!-- NodeManager 附属服务(必须配置) --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 开启日志聚合 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 日志保留时间(小时) --><property><name>yarn.log-aggregation.retain-seconds</name><value>86400</value></property><!-- 适配容器内存 --><property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value></property><property><name>yarn.scheduler.maximum-allocation-mb</name><value>4096</value></property>
</configuration>
(5)mapred-site.xml(MapReduce 配置)
<?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><!-- MapReduce Web UI 端口 --><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value></property><!-- 开启历史服务器 --><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value></property>
</configuration>
(6)workers(指定 DataNode/NodeManager 节点)
# 编辑文件
vim /usr/local/hadoop/etc/hadoop/workers# 删除原有内容,添加以下节点(node2、node3 作为从节点)
node2
node3

4. 同步配置文件到 node2、node3(node1 执行)

su - hadoop
scp /usr/local/hadoop/etc/hadoop/* node2:/usr/local/hadoop/etc/hadoop/
scp /usr/local/hadoop/etc/hadoop/* node3:/usr/local/hadoop/etc/hadoop/

5. 创建临时目录(所有节点执行)

su - hadoop
mkdir -p /usr/local/hadoop/tmp
chmod 755 /usr/local/hadoop/tmp

四、集群启动与验证

1. 格式化 NameNode(仅 node1 执行,仅首次!)

su - hadoop
hdfs namenode -format# 成功标志:最后输出 "Exiting with status 0"

2. 启动集群(node1 执行)

# 启动 HDFS
start-dfs.sh# 启动 YARN
start-yarn.sh# 启动历史服务器(可选)
mr-jobhistory-daemon.sh start historyserver

3. 验证集群状态

(1)检查进程(各节点执行 jps
  • node1 应看到:NameNodeResourceManagerJobHistoryServer
  • node2 应看到:DataNodeNodeManager
  • node3 应看到:DataNodeNodeManagerSecondaryNameNode
(2)检查端口/访问 Web UI
  • HDFS Web UI:http://node1:9870(查看 DataNode 是否在线)
  • YARN Web UI:http://node1:8088(查看 NodeManager 是否在线)
  • 历史服务器:http://node1:19888
(3)命令行验证
# 创建 HDFS 目录
hdfs dfs -mkdir /test# 上传文件
hdfs dfs -put ~/.bashrc /test# 查看文件(应能看到)
hdfs dfs -ls /test# 运行官方示例(验证 MapReduce)
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar pi 2 5

五、常见问题解决

  1. DataNode 未启动
    • 检查 tmp 目录权限;
    • 若提示 clusterID 不匹配,删除所有节点的 tmp 目录,重新格式化 NameNode。
  2. NodeManager 未启动
    • 检查 yarn-site.xmlyarn.nodemanager.aux-services 配置是否正确;
    • 查看日志:$HADOOP_HOME/logs/yarn-hadoop-nodemanager-*.log
  3. Web UI 无法访问
    • 确认节点 IP/主机名能解析;
    • 确认防火墙已关闭。

总结

  1. 3节点集群核心是角色分工(1个主节点+2个从节点),需保证所有节点环境统一、免密登录正常;
  2. 配置文件的核心是指定 NameNode(node1)、ResourceManager(node1)、SecondaryNameNode(node3)的地址;
  3. 启动前必须格式化 NameNode(仅首次),启动后通过进程、Web UI、命令行三层验证集群可用性。
http://www.jsqmd.com/news/427841/

相关文章:

  • 豆包广告怎么做?有靠谱的服务商吗? - 品牌2026
  • 制造业如何做豆包推广,有相关的服务商吗? - 品牌2026
  • JDK11新特性
  • JDK8新特性
  • 2026年热门的高定极简针式铰链/270度针式铰链厂家选择指南 - 行业平台推荐
  • 2026年比较好的密封圈/航空充气密封圈厂家推荐哪家好 - 行业平台推荐
  • 2026年评价高的重型抽屉滑轨/阻尼抽屉滑轨厂家推荐与选择指南 - 行业平台推荐
  • 2026年靠谱的重型中空旋转平台/伺服中空旋转平台优质供应商推荐 - 行业平台推荐
  • 北京老药丸回收攻略|正规渠道科普,告别闲置困扰,杜绝踩坑隐患 - 品牌排行榜单
  • GEO源码搭建/GEO贴牌代理:源码云科技头部开发商,源码云科技GEO官网:geo.ymyhn.com - 源码云科技
  • 2026春熙路必尝:这些成都火锅品牌凭实力获好评,重庆火锅/美食/川渝火锅/火锅/老火锅/特色美食,成都火锅品牌找哪家 - 品牌推荐师
  • 机器人租售执行一致吗?现场演示
  • 2026年3月西安标牌彩印广告公司推荐,上门服务与售后保障 - 品牌鉴赏师
  • 转行AI需谨慎:那些半途而废的人,都忽略了这几点。
  • 三维扫描仪哪个品牌好?2026选型指南:从精度、效率到行业落地一次讲透 - 工业三维扫描仪评测
  • 2026年知名的衣柜缓冲滑轨/拉篮缓冲滑轨销售厂家哪家好 - 行业平台推荐
  • 2026年评价高的二手变频器/施耐德变频器实力品牌厂家推荐 - 行业平台推荐
  • 智律云(Courtify AI):引领法律服务新浪潮的AI先锋
  • 分析时代蜂族车位代理销售能力强吗,成都地区其车位管理服务靠谱吗 - 工业品牌热点
  • 制造业如何做豆包广告?有专业的服务商吗? - 品牌2026
  • 《我的科研助理:ChatGPT全方位实用指南》读书笔记七
  • 《我的科研助理:ChatGPT全方位实用指南》读书笔记八
  • 2026年热门的小型塑胶开炼机/小型塑料开炼机实力品牌厂家推荐 - 行业平台推荐
  • 省选联考 R5
  • OFA-VE视觉蕴含分析系统与Python爬虫实战:自动化数据采集与智能验证
  • 2026年靠谱的免打孔不锈钢门吸/不锈钢门吸优质供应商推荐 - 行业平台推荐
  • Seedance 2.0之后,又一中国视频模型SkyReels-V4登上全球第二
  • 2026年靠谱的中空壁缠绕管设备/克拉缠绕管设备实力品牌厂家推荐 - 行业平台推荐
  • 2026年3月浮标厂家最新推荐,精准监测与设备品质测评 - 品牌鉴赏师
  • 最新!2026年2月评价好的仓储货架工厂排行曝光,横梁货架/中型货架/仓库货架/重型货架,仓储货架实力厂家口碑推荐榜单 - 品牌推荐师