hadoop新建虚拟机时要注意哪些配置细节?
环境准备与虚拟机规划
在搭建Hadoop集群之前,合理的虚拟机规划是基础,Hadoop集群包含NameNode、DataNode、ResourceManager、NodeManager等核心角色,建议至少准备3台虚拟机(1台Master节点+2台Slave节点)以满足分布式存储和计算需求,虚拟机配置方面,Master节点建议分配4GB内存、2 vCPU、50GB硬盘,Slave节点建议分配2GB内存、1 vCPU、100GB硬盘,确保DataNode有足够存储空间,操作系统推荐使用Linux(如CentOS 7或Ubuntu 20.04),因其与Hadoop兼容性最佳。

虚拟机创建与基础配置
虚拟机安装
以VMware为例,创建新的虚拟机时,选择“典型”安装模式,稍后安装操作系统,操作系统类型选择“Linux”,版本对应所选发行版(如CentOS 7 64位),分配内存和CPU时,需预留系统资源,避免因虚拟机负载过高导致宿主机卡顿,硬盘类型建议选择“SCSI”(性能优于IDE),初始大小按规划设置,并勾选“分割磁盘为多个文件”便于后期扩容。
网络配置
为虚拟机配置静态IP地址,确保集群内节点通信稳定,以CentOS 7为例,编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,设置BOOTPROTO=static,并配置IPADDR(如192.168.1.10)、NETMASK(255.255.255.0)、GATEWAY(192.168.1.1)、DNS(如8.8.8.8),重启网络服务(systemctl restart network)后,使用ping命令测试网络连通性。
主机名与hosts映射
为每个虚拟机设置唯一主机名(如Master、Slave1、Slave2),通过hostnamectl set-hostname命令实现,在所有节点的/etc/hosts文件中添加集群内所有节点的IP与主机名映射,
168.1.10 Master
192.168.1.11 Slave1
192.168.1.12 Slave2
避免因DNS解析问题导致节点间通信失败。
系统环境优化
关闭防火墙与SELinux
Hadoop集群通信依赖特定端口(如8088、9000),防火墙可能拦截这些端口,临时关闭防火墙使用systemctl stop firewalld,永久关闭则执行systemctl disable firewalld,SELinux同样可能影响权限,建议设置为宽松模式(编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=permissive)。
配置SSH免密登录
Master节点需通过SSH无密码访问所有Slave节点,便于集群管理,在Master节点生成SSH密钥对:ssh-keygen -t rsa,然后将公钥复制到所有节点(包括自身):ssh-copy-id Master、ssh-copy-id Slave1、ssh-copy-id Slave2,验证免密登录是否成功(ssh Slave1)。

安装JDK
Hadoop依赖Java环境,建议安装OpenJDK 1.8,通过yum(CentOS)或apt(Ubuntu)安装:
yum install java-1.8.0-openjdk-devel -y
安装后配置环境变量JAVA_HOME,编辑/etc/profile,添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
执行source /etc/profile使配置生效,验证java -version。
Hadoop安装与配置
下载与解压
从Apache官网下载Hadoop稳定版(如hadoop-3.3.1),上传至虚拟机/opt目录,解压并创建软链接:
tar -zxvf hadoop-3.3.1.tar.gz -C /opt
ln -s /opt/hadoop-3.3.1 /opt/hadoop
配置核心文件
进入/opt/hadoop/etc/hadoop目录,修改以下关键文件:
- core-site.xml:配置NameNode地址和临时目录:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/data/tmp</value>
</property>
</configuration> - hdfs-site.xml:配置副本数和数据存储目录:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/datanode</value>
</property>
</configuration> - mapred-site.xml:配置MapReduce框架为YARN:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration> - yarn-site.xml:配置ResourceManager地址和节点管理器属性:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置环境变量
编辑/etc/profile,添加Hadoop路径:

export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source /etc/profile使配置生效。
启动与验证集群
格式化NameNode
在Master节点执行hdfs namenode -format,首次启动必须格式化,否则无法创建HDFS文件系统。
启动Hadoop服务
依次启动HDFS和YARN:
start-dfs.sh
start-yarn.sh
验证集群状态
- 查看HDFS节点状态:
hdfs dfsadmin -report - 查看YARN资源管理器页面:浏览器访问
http://Master:8088 - 测试文件上传:
hdfs dfs -put /etc/hosts /input,下载验证:hdfs dfs -get /input/hosts /tmp/hosts
通过以上步骤,Hadoop虚拟机集群即可成功搭建,后续可根据业务需求调整节点数量、存储策略及计算资源配置,充分发挥分布式系统的优势。