一、环境准备
1.1 虚拟机配置
-
基础镜像:CentOS 7 x64 最小化安装
-
集群规划:
主机名 IP地址 角色 vm01 192.168.163.101 Master/Namenode vm02 192.168.163.102 Worker/Datanode vm03 192.168.163.103 Worker/Datanode
1.2 网络配置检查
bash
复制
下载
# 在宿主机检查VMnet8配置 ipconfig | findstr "VMnet8" # 应显示类似:192.168.163.1 255.255.255.0
二、系统基础配置
2.1 网络配置(所有节点)
bash
复制
下载
# 编辑网络配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改以下内容(以vm01为例) BOOTPROTO=static ONBOOT=yes IPADDR=192.168.163.101 NETMASK=255.255.255.0 GATEWAY=192.168.163.2 DNS1=192.168.163.2 # 重启网络服务 systemctl restart network
2.2 主机名与hosts配置
bash
复制
下载
# 设置主机名(分别在对应节点执行) hostnamectl set-hostname vm01 # 在vm01执行 hostnamectl set-hostname vm02 # 在vm02执行 hostnamectl set-hostname vm03 # 在vm03执行 # 统一hosts配置(所有节点相同) cat >> /etc/hosts <<EOF 192.168.163.101 vm01 192.168.163.102 vm02 192.168.163.103 vm03 EOF
2.3 系统服务优化
bash
复制
下载
# 关闭防火墙和SELinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 安装基础工具 yum install -y vim wget net-tools ntp
三、SSH免密登录配置
3.1 密钥生成(所有节点)
bash
复制
下载
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
3.2 密钥分发
bash
复制
下载
# 在vm01执行 ssh-copy-id vm01 ssh-copy-id vm02 ssh-copy-id vm03 # 在vm02执行 ssh-copy-id vm01 ssh-copy-id vm02 ssh-copy-id vm03 # 在vm03执行 ssh-copy-id vm01 ssh-copy-id vm02 ssh-copy-id vm03
3.3 验证配置
bash
复制
下载
ssh vm02 date # 从vm01测试连接到vm02 ssh vm03 hostname # 从vm01测试连接到vm03
四、JDK 8安装配置
4.1 Master节点安装
bash
复制
下载
# 解压安装 tar -zxvf jdk-8u201-linux-x64.tar.gz -C /usr/local cd /usr/local && ln -s jdk1.8.0_201 jdk # 环境变量配置 cat >> /etc/profile <<EOF export JAVA_HOME=/usr/local/jdk export PATH=\$JAVA_HOME/bin:\$PATH EOF source /etc/profile
4.2 分发到Worker节点
bash
复制
下载
# 从vm01分发到其他节点 scp -r /usr/local/jdk1.8.0_201 vm02:/usr/local/ scp -r /usr/local/jdk1.8.0_201 vm03:/usr/local/ scp /etc/profile vm02:/etc/ scp /etc/profile vm03:/etc/ # 在各Worker节点创建软链接 ssh vm02 "cd /usr/local && ln -s jdk1.8.0_201 jdk && source /etc/profile" ssh vm03 "cd /usr/local && ln -s jdk1.8.0_201 jdk && source /etc/profile"
4.3 验证安装
bash
复制
下载
# 所有节点执行 java -version # 应输出:java version "1.8.0_201"
五、环境验证
5.1 基础检查项
bash
复制
下载
# 网络连通性 ping -c 4 vm02 ping -c 4 vm03 # 主机名解析 hostname host vm01 # 时间同步 ntpdate -u pool.ntp.org
5.2 集群SSH测试
bash
复制
下载
# 在vm01执行 for node in vm01 vm02 vm03; do echo "=== $node ===" ssh $node "hostname; java -version" done
六、后续步骤准备
6.1 创建专用用户(所有节点)
bash
复制
下载
useradd hadoop passwd hadoop echo "hadoop ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers # 配置SSH免密(hadoop用户) su - hadoop ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
6.2 目录准备
bash
复制
下载
# 创建数据目录 mkdir -p /data/hadoop/{tmp,hdfs,name,hdfs/data} chown -R hadoop:hadoop /data/hadoop
关键注意事项
-
网络配置一致性:
-
确保所有节点在同一子网
-
网关/DNS配置相同
-
-
时间同步:
bash
复制
下载
# 配置NTP服务 yum install -y ntp systemctl enable ntpd systemctl start ntpd
-
资源限制调整:
bash
复制
下载
# 编辑/etc/security/limits.conf hadoop soft nofile 65536 hadoop hard nofile 65536 hadoop soft nproc 32000 hadoop hard nproc 32000
-
SWAP优化:
bash
复制
下载
echo "vm.swappiness = 10" >> /etc/sysctl.conf sysctl -p
提示:完成本阶段配置后,建议制作虚拟机快照以便后续回滚。Hadoop和Spark的安装配置将在后续文档中详细说明