生产环境下Hadoop大集群的部署需要结合DNS实现节点域名解析,通过NFS共享配置文件与公共数据,大幅提升集群管理效率与一致性,避免手动逐台修改配置的繁琐操作。

环境准备与规划
部署前需要先完成硬件与网络的基础规划,建议集群节点按照角色划分:1台主节点(NameNode、ResourceManager)作为管理节点,若干台从节点(DataNode、NodeManager)作为计算存储节点,所有节点建议配置相同的基础操作系统,比如CentOS 7。同时需要预留固定的IP段,为每个节点分配静态IP,后续DNS配置会基于此IP段进行域名映射。
基础依赖安装
所有节点都需要安装JDK,Hadoop依赖Java运行环境,建议安装JDK 8及以上版本,安装完成后配置JAVA_HOME环境变量:
# 解压JDK安装包 tar -zxvf jdk-8u341-linux-x64.tar.gz -C /usr/local/ # 配置环境变量,写入/etc/profile echo "export JAVA_HOME=/usr/local/jdk1.8.0_341" >> /etc/profile echo "export PATH=$JAVA_HOME/bin:$PATH" >> /etc/profile # 生效环境变量 source /etc/profile # 验证Java安装 java -version
DNS服务部署与配置
DNS服务可以实现集群内节点的域名解析,避免硬编码IP地址,后续节点扩容或修改IP时只需要更新DNS配置即可,不需要修改所有节点的hosts文件。
安装DNS服务
选择主节点安装bind服务作为DNS服务器:
# 安装bind及工具包 yum install -y bind bind-utils # 启动named服务并设置开机自启 systemctl start named systemctl enable named
配置DNS解析规则
修改/etc/named.conf配置文件,允许集群内所有节点访问DNS服务:
options {
listen-on port 53 { any; };
allow-query { any; };
# 其他默认配置保持不变
};
# 添加集群域名区域配置
zone "hadoop.cluster" IN {
type master;
file "hadoop.cluster.zone";
allow-update { none; };
};
在/var/named/目录下创建区域文件hadoop.cluster.zone,添加节点域名与IP映射:
$TTL 86400
@ IN SOA master.hadoop.cluster. admin.hadoop.cluster. (
2024010101
3600
1800
604800
86400
)
@ IN NS master.hadoop.cluster.
master IN A 192.168.0.10
slave1 IN A 192.168.0.11
slave2 IN A 192.168.0.12
slave3 IN A 192.168.0.13
所有节点修改/etc/resolv.conf,添加DNS服务器地址:
echo "nameserver 192.168.0.10" > /etc/resolv.conf # 测试域名解析 nslookup master.hadoop.cluster
NFS服务部署与配置
NFS可以实现多节点共享同一目录,Hadoop的配置文件、公共依赖包、日志目录等都可以通过NFS共享,避免逐台节点修改配置。
安装NFS服务
主节点作为NFS服务端,所有节点安装NFS客户端:
# 服务端安装 yum install -y nfs-utils rpcbind # 客户端安装 yum install -y nfs-utils
配置共享目录
主节点创建共享目录/data/hadoop/share,修改/etc/exports配置文件:
/data/hadoop/share 192.168.0.0/24(rw,sync,no_root_squash)
启动NFS相关服务并设置开机自启:
# 服务端启动服务 systemctl start rpcbind systemctl start nfs-server systemctl enable rpcbind systemctl enable nfs-server # 客户端挂载共享目录 mkdir -p /data/hadoop/share mount -t nfs 192.168.0.10:/data/hadoop/share /data/hadoop/share # 设置开机自动挂载,写入/etc/fstab echo "192.168.0.10:/data/hadoop/share /data/hadoop/share nfs defaults 0 0" >> /etc/fstab
Hadoop集群安装与配置
将Hadoop安装包上传到NFS共享目录,所有节点都可以直接访问安装包,解压后统一将安装目录放到/usr/local/hadoop。
核心配置文件修改
修改Hadoop的核心配置文件,所有配置文件都放在NFS共享目录的etc/hadoop下,所有节点直接读取共享的配置,无需单独修改:
core-site.xml配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master.hadoop.cluster:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml配置
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
yarn-site.xml配置
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master.hadoop.cluster</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置环境变量
所有节点配置Hadoop环境变量:
echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/profile echo "export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH" >> /etc/profile source /etc/profile
集群初始化与启动
首次启动Hadoop需要先格式化NameNode:
# 主节点执行格式化 hdfs namenode -format # 启动HDFS服务 start-dfs.sh # 启动YARN服务 start-yarn.sh
启动完成后可以通过jps命令检查各节点进程,主节点会出现NameNode、ResourceManager进程,从节点会出现DataNode、NodeManager进程,也可以通过Hadoop自带的web界面查看集群状态。
常见问题排查
- 如果节点无法解析域名,检查DNS服务是否正常运行,
/etc/resolv.conf配置是否正确 - 如果NFS共享目录无法挂载,检查服务端
/etc/exports配置是否正确,防火墙是否开放了NFS相关端口 - 如果Hadoop启动后节点无法加入集群,检查所有节点的SSH免密配置是否完成,Hadoop配置文件中的域名是否和DNS解析一致
生产环境下建议定期备份DNS区域文件和NFS共享的核心配置,同时监控DNS与NFS服务的运行状态,避免基础服务故障影响整个Hadoop集群的可用性。