news 2026/4/23 10:29:06

VMware虚拟化实战:从零构建Hadoop完全分布式集群

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VMware虚拟化实战:从零构建Hadoop完全分布式集群

1. VMware虚拟化环境搭建

第一次接触Hadoop集群搭建的朋友可能会觉得有点复杂,但其实只要跟着步骤一步步来,完全可以在家用自己的电脑搭建一个分布式环境。我当年第一次搭建时也踩了不少坑,现在把这些经验都总结出来,帮你少走弯路。

1.1 虚拟机创建与配置

首先需要准备VMware Workstation Pro,我用的是16版本,实测15-17版本都可以。安装过程很简单,官网下载安装包后一直下一步就行。这里有个小技巧:安装完成后记得先不要急着创建虚拟机,先去"编辑"-"虚拟网络编辑器"里检查一下VMnet8(NAT模式)的子网IP,建议改成192.168.100.0网段,这样后面配置静态IP时会方便很多。

创建虚拟机时选择CentOS 7镜像,我推荐用CentOS-7-x86_64-Minimal-2009.iso这个版本,体积小且够用。配置参数建议:

  • 内存:主节点建议4GB,从节点2GB(如果电脑内存紧张可以都设2GB)
  • 处理器:主节点2核,从节点1核
  • 磁盘空间:20GB足够

安装CentOS时有个关键点:一定要选择英文语言环境!我之前用中文环境遇到过各种奇怪的编码问题。安装完成后记得用yum update更新系统,然后安装必要工具:

yum install -y net-tools vim wget

1.2 网络与防火墙配置

网络配置是最容易出问题的环节。我建议采用NAT模式+静态IP的方案,这样既能上网又方便集群内部通信。配置步骤:

  1. 修改网卡配置:
vi /etc/sysconfig/network-scripts/ifcfg-ens33

内容修改为:

BOOTPROTO=static ONBOOT=yes IPADDR=192.168.100.10 # 主节点IP NETMASK=255.255.255.0 GATEWAY=192.168.100.2 DNS1=8.8.8.8
  1. 关闭防火墙和SELinux:
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  1. 测试网络:
ping baidu.com # 测试外网 ping 192.168.100.10 # 测试内网

如果遇到网络不通的情况,可以先检查VMware的虚拟网络编辑器中的NAT设置,确保网关地址和虚拟机配置一致。我遇到过因为网关配错导致怎么都连不上网的情况,折腾了半天才发现是这个小细节。

2. Java与Hadoop环境部署

2.1 JDK安装与配置

Hadoop运行需要Java环境,推荐使用JDK 1.8,这是最稳定的版本。我习惯把软件都放在/opt目录下:

mkdir /opt/software cd /opt/software wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz tar -zxvf jdk-8u202-linux-x64.tar.gz -C /opt/ mv /opt/jdk1.8.0_202 /opt/jdk

配置环境变量时,建议直接在/etc/profile.d/下新建单独的文件,这样更清晰:

echo 'export JAVA_HOME=/opt/jdk export PATH=$PATH:$JAVA_HOME/bin' > /etc/profile.d/java.sh source /etc/profile

验证安装:

java -version # 应该显示 java version "1.8.0_202"

2.2 Hadoop安装与基础配置

我用的是Hadoop 2.7.7版本,下载和解压:

cd /opt/software wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz tar -zxvf hadoop-2.7.7.tar.gz -C /opt/ mv /opt/hadoop-2.7.7 /opt/hadoop

配置Hadoop环境变量:

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

基础配置文件修改(先给权限):

chmod 777 /opt/hadoop/etc/hadoop/*.xml

3. 完全分布式集群配置

3.1 虚拟机克隆与网络设置

通过VMware的克隆功能快速创建从节点,建议先关闭主节点再进行克隆。克隆完成后需要:

  1. 修改主机名:
hostnamectl set-hostname node1 # 在每个节点执行
  1. 修改IP地址:
vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改IPADDR为192.168.100.11(node1)、192.168.100.12(node2)
  1. 配置hosts映射:
vi /etc/hosts # 添加: 192.168.100.10 master 192.168.100.11 node1 192.168.100.12 node2

3.2 SSH免密登录配置

这是集群管理的关键步骤,配置好后可以大大简化操作:

ssh-keygen -t rsa # 三连回车 ssh-copy-id master ssh-copy-id node1 ssh-copy-id node2

测试是否成功:

ssh node1 date # 不输密码能显示时间就成功了

3.3 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:
<configuration> <property> <name>dfs.replication</name> <value>2</value> # 副本数与从节点数一致 </property> </configuration>
  1. yarn-site.xml:
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
  1. slaves文件:
node1 node2

将配置好的Hadoop目录同步到从节点:

scp -r /opt/hadoop node1:/opt/ scp -r /opt/hadoop node2:/opt/

4. 集群启动与验证

4.1 格式化与启动

首次启动需要格式化NameNode:

hdfs namenode -format

启动集群:

start-dfs.sh start-yarn.sh

检查进程:

jps # 主节点应有:NameNode、ResourceManager、SecondaryNameNode # 从节点应有:DataNode、NodeManager

4.2 Web界面验证

HDFS管理界面:

http://master:50070

YARN管理界面:

http://master:8088

4.3 运行WordCount测试

创建测试文件:

hdfs dfs -mkdir /input echo "hello hadoop hello world" > test.txt hdfs dfs -put test.txt /input

运行示例程序:

hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input /output

查看结果:

hdfs dfs -cat /output/part-r-00000 # 应该显示: # hadoop 1 # hello 2 # world 1

我在第一次搭建时遇到过各种问题,比如防火墙没关导致节点间通信失败,或者配置文件写错导致服务起不来。关键是要学会看日志,Hadoop的日志在/opt/hadoop/logs/目录下,遇到问题先查日志,大多数错误都有明确提示。

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

OFA图像语义蕴含模型多场景落地:从实验室demo到SaaS服务演进路径

OFA图像语义蕴含模型多场景落地&#xff1a;从实验室demo到SaaS服务演进路径 你有没有遇到过这样的问题&#xff1a;一张商品图配一段英文描述&#xff0c;怎么快速判断这段描述是否准确反映了图片内容&#xff1f;或者&#xff0c;客服系统收到用户上传的故障照片和文字说明&…

作者头像 李华
网站建设 2026/4/19 18:30:06

颠覆式ONU设备管理:极简效率工具让运维工作提速300%

颠覆式ONU设备管理&#xff1a;极简效率工具让运维工作提速300% 【免费下载链接】zteOnu 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 如何在30分钟内完成100台ONU设备的批量配置&#xff1f;让运维效率提升300%的秘密是什么&#xff1f;zteOnu——这款基于Go…

作者头像 李华
网站建设 2026/4/10 17:19:01

破解IL2CPP黑盒:Cpp2IL逆向工具从入门到精通指南

破解IL2CPP黑盒&#xff1a;Cpp2IL逆向工具从入门到精通指南 【免费下载链接】Cpp2IL Work-in-progress tool to reverse unitys IL2CPP toolchain. 项目地址: https://gitcode.com/gh_mirrors/cp/Cpp2IL 在Unity开发中&#xff0c;IL2CPP编译技术将C#代码转换为高效的C…

作者头像 李华
网站建设 2026/4/11 18:38:05

经典重构:当《植物大战僵尸》遇上开源社区的技术复活术

经典重构&#xff1a;当《植物大战僵尸》遇上开源社区的技术复活术 【免费下载链接】PlantsVsZombies.NET A port of Plants vs. Zombies Windows Phone version to various platforms, powered by MonoGame 项目地址: https://gitcode.com/gh_mirrors/pl/PlantsVsZombies.NE…

作者头像 李华
网站建设 2026/3/30 17:50:47

BCompare功能扩展指南:解决授权管理需求的3种进阶方案

BCompare功能扩展指南&#xff1a;解决授权管理需求的3种进阶方案 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare作为文件对比领域的专业工具&#xff0c;在软件开发和数据管理中…

作者头像 李华