news 2026/5/23 5:46:18

别再复制粘贴了!手把手教你用三台CentOS 7虚拟机搭建Hadoop 3.1.3集群(含SSH免密登录完整流程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再复制粘贴了!手把手教你用三台CentOS 7虚拟机搭建Hadoop 3.1.3集群(含SSH免密登录完整流程)

三节点Hadoop集群搭建实战:从SSH互信到分布式部署全解析

刚接触分布式系统的开发者,往往在搭建多节点环境时遇到各种"拦路虎"。其中SSH免密登录配置是最容易卡壳的环节——明明照着教程操作却总是出现Permission deniedConnection refused。本文将用三台CentOS 7虚拟机,带你完整走通从SSH互信到Hadoop 3.1.3集群部署的全流程,特别针对密钥分发、权限设置等易错点进行深度解析。

1. 环境准备与基础配置

在开始Hadoop部署前,需要确保三台虚拟机处于干净的初始状态。建议使用最小化安装的CentOS 7系统,内存建议每台不低于2GB。首先在三台机器上执行以下基础配置:

# 关闭SELinux(需要重启生效) sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 安装必要工具 yum install -y vim wget net-tools

主机命名规范建议采用master,worker1,worker2的格式,修改方法如下:

# 在三台机器分别执行(注意替换主机名) hostnamectl set-hostname master # 第一台 hostnamectl set-hostname worker1 # 第二台 hostnamectl set-hostname worker2 # 第三台

/etc/hosts文件需要包含所有节点的IP映射,三台机器保持相同配置:

192.168.1.101 master 192.168.1.102 worker1 192.168.1.103 worker2

提示:使用ping hostname测试网络连通性,确保三台机器可以互相通信后再继续后续步骤。

2. SSH免密登录深度配置

SSH互信是Hadoop集群正常工作的基础。许多初学者在此步骤遇到问题,主要是因为忽略了权限设置或配置文件细节。下面分步骤详解:

2.1 密钥生成与分发

在master节点执行以下命令生成密钥对(三台机器都需要执行):

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

关键点说明:

  • -t rsa指定密钥类型为RSA
  • -P ''设置空密码
  • -f指定密钥文件路径

将公钥分发到所有节点(包括自身):

# 在master节点执行 ssh-copy-id master ssh-copy-id worker1 ssh-copy-id worker2

常见问题排查:

  1. 如果出现port 22: Connection refused,检查sshd服务是否运行:
    systemctl status sshd systemctl start sshd
  2. 遇到Permission denied错误,检查目标机器的~/.ssh目录权限应为700,authorized_keys文件权限应为600

2.2 SSH服务端关键配置

编辑/etc/ssh/sshd_config文件,确保以下参数正确设置:

RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no # 禁用密码登录增强安全性

修改后重启服务:

systemctl restart sshd

2.3 多节点互信测试

使用以下命令验证免密登录是否成功:

ssh master "date" # 从worker1测试连接master ssh worker1 "date" # 从master测试连接worker1 ssh worker2 "date" # 跨worker节点测试

注意:如果某条命令仍要求输入密码,请检查对应节点的authorized_keys文件是否包含所有公钥,以及文件权限是否正确。

3. Hadoop集群安装部署

3.1 JDK环境配置

Hadoop依赖Java环境,建议安装OpenJDK 8:

yum install -y java-1.8.0-openjdk-devel

配置环境变量(三台机器都需要):

echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> /etc/profile echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile source /etc/profile

验证安装:

java -version

3.2 Hadoop安装与配置

在master节点下载并解压Hadoop:

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz tar -xzf hadoop-3.1.3.tar.gz -C /opt/ mv /opt/hadoop-3.1.3 /opt/hadoop

配置环境变量(三台机器都需要):

echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile source /etc/profile

3.3 关键配置文件修改

需要配置的核心文件位于$HADOOP_HOME/etc/hadoop/目录下:

  1. core-site.xml- 核心全局配置:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property> </configuration>
  1. hdfs-site.xml- HDFS相关配置:
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop/dfs/data</value> </property> </configuration>
  1. workers- 指定所有工作节点:
worker1 worker2
  1. hadoop-env.sh- 补充JAVA_HOME配置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

4. 集群启动与验证

4.1 配置文件分发

将配置好的Hadoop目录复制到所有worker节点:

scp -r /opt/hadoop worker1:/opt/ scp -r /opt/hadoop worker2:/opt/ scp -r /etc/profile worker1:/etc/ scp -r /etc/profile worker2:/etc/

在worker节点上执行:

source /etc/profile

4.2 格式化HDFS

在master节点执行:

hdfs namenode -format

成功格式化会看到Storage directory /opt/hadoop/dfs/name has been successfully formatted提示。

4.3 启动集群

在master节点执行:

start-dfs.sh start-yarn.sh

验证各节点进程:

  • master节点应有:NameNode、ResourceManager
  • worker节点应有:DataNode、NodeManager

使用jps命令检查:

jps

4.4 Web界面访问

Hadoop提供Web管理界面:

  • HDFS: http://master:9870
  • YARN: http://master:8088

在集群运行后,可以执行测试作业验证功能完整性:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 10 100
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 5:43:39

HAMBURGER架构:提升LLM推理效率的动态token融合技术

1. 项目概述&#xff1a;HAMBURGER如何重新定义LLM推理效率在大型语言模型&#xff08;LLM&#xff09;的实际部署中&#xff0c;推理效率一直是制约其广泛应用的关键瓶颈。传统自回归生成模式下&#xff0c;每个token的生成都需要完整的注意力计算和KV缓存更新&#xff0c;这种…

作者头像 李华
网站建设 2026/5/23 5:41:12

【Linux】Linux中常用操作命令总结

常用指令ls   显示文件或目录-l 列出文件详细信息l(list)-a 列出当前目录下所有文件及目录&#xff0c;包括隐藏的a(all)mkdir 创建目录-p 创建目录&#xff0c;若无父目录&#xff0c;则创建p(parent)cd 切换目录…

作者头像 李华
网站建设 2026/5/23 5:41:11

中性原子量子编译的PAC框架设计与优化

1. 中性原子量子编译的挑战与机遇量子计算正从实验室走向实际应用&#xff0c;而中性原子系统因其独特的物理特性成为最有前景的量子计算平台之一。与传统超导量子比特不同&#xff0c;中性原子量子计算机利用激光捕获和操控单个原子&#xff0c;通过里德堡相互作用实现量子门操…

作者头像 李华
网站建设 2026/5/23 5:38:25

CentOS 7下Nginx集成SM2国密证书的完整实践指南

1. 为什么SM2证书在CentOS 7上配Nginx不是“装个包就能用”的事&#xff1f;你刚接到一个政务系统对接需求&#xff0c;对方明确要求必须使用国密SM2证书&#xff0c;且服务器环境锁定为CentOS 7。你信心满满地打开终端&#xff0c;yum install nginx&#xff0c;再把SM2证书丢…

作者头像 李华