一、网络接口基础配置
配置静态IP是HDFS集群节点稳定通信的前提,需编辑网络接口配置文件(路径:/etc/sysconfig/network-scripts/ifcfg-<接口名>,如ifcfg-ens33)。关键参数设置如下:
DEVICE=<接口名>:指定网络接口(如ens33);BOOTPROTO=static:使用静态IP(区别于DHCP动态分配);IPADDR=<节点IP>:如192.168.1.100(集群内唯一);NETMASK=255.255.255.0:子网掩码(根据网络规划调整);GATEWAY=192.168.1.1:网关地址(同一网段的路由设备IP);DNS1=8.8.8.8、DNS2=8.8.4.4:DNS服务器(用于域名解析);ONBOOT=yes:系统启动时自动启用网络接口。
二、重启网络服务使配置生效
修改配置文件后,需重启网络服务应用变更:
- CentOS 7及以上版本:
sudo systemctl restart network; - 若使用NetworkManager管理网络:
sudo systemctl restart NetworkManager; - 或针对特定接口重启:
sudo ifdown <接口名> && sudo ifup <接口名>(如sudo ifdown ens33 && sudo ifup ens33)。
三、验证网络连通性
使用ping命令测试节点间网络是否畅通(如从NameNode测试DataNode):
ping <目标节点IP>
若能持续收到回复(如64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.123 ms),说明网络连接正常;若失败,需检查IP配置、网关、DNS或物理链路。
四、配置Hadoop环境变量
HDFS作为Hadoop的核心组件,需正确设置环境变量以确保命令可用:
- 编辑全局环境配置文件
/etc/profile,添加以下内容(根据实际路径调整):export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # Java安装路径 export HADOOP_HOME=/opt/hadoop # Hadoop安装目录 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # 添加Hadoop命令到PATH - 使配置立即生效:
source /etc/profile。
五、配置HDFS核心网络参数
HDFS的网络行为由core-site.xml和hdfs-site.xml两个配置文件决定:
- core-site.xml(定义HDFS默认文件系统和通用配置):
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://<namenode-host>:9000</value> <!-- NameNode的RPC地址,替换为实际主机名或IP --> </property> <property> <name>hadoop.tmp.dir</name> <value>/tmp/hadoop</value> <!-- Hadoop临时目录(需提前创建) --> </property> </configuration> - hdfs-site.xml(定义HDFS特定配置):
<configuration> <property> <name>dfs.replication</name> <value>3</value> <!-- 数据块副本数(根据集群规模调整,生产环境建议3) --> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/hdfs/namenode</value> <!-- NameNode元数据存储目录 --> </property> <property> <name>dfs.datanode.data.dir</name> <value>/data/hdfs/datanode</value> <!-- DataNode数据存储目录 --> </property> </configuration>注:目录路径需提前创建并赋予Hadoop用户权限(如
chown -R hadoop:hadoop /data/hdfs)。
六、配置SSH免密登录
HDFS集群中,NameNode需要与DataNode、SecondaryNameNode等进行无密码通信(如启动服务、同步元数据),需配置SSH免密登录:
- 在NameNode上生成SSH密钥对:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 按回车键接受默认路径和空密码 - 将公钥复制到所有DataNode节点:
ssh-copy-id@ # 如ssh-copy-id hadoop@192.168.1.101 - 测试免密登录:
ssh,若无需输入密码即可登录,则配置成功。
七、启动HDFS并验证
- 格式化NameNode(首次启动前必须执行,用于初始化元数据):
hdfs namenode -format - 启动HDFS集群:
start-dfs.sh # 在NameNode上执行,会自动启动所有DataNode - 验证服务状态:
- 查看进程:
jps(应看到NameNode、DataNode等进程); - 访问Web UI:在浏览器输入
http://(Hadoop 3.x版本,默认端口9870),查看集群状态;:9870 - 执行简单操作:
hdfs dfs -ls /(列出HDFS根目录,若返回空目录则表示正常)。
- 查看进程:
八、网络相关注意事项
- 主机名与IP映射:编辑所有节点的
/etc/hosts文件,添加集群节点的IP与主机名映射(如192.168.1.100 namenode、192.168.1.101 datanode1),避免依赖DNS解析,提高通信效率。 - 防火墙配置:开放HDFS所需端口(如NameNode的RPC端口
9000、Web UI端口9870,DataNode的数据端口50010、信息端口50075),可使用以下命令:firewall-cmd --permanent --add-port=9000/tcp # 开放9000端口 firewall-cmd --permanent --add-port=9870/tcp # 开放9870端口 firewall-cmd --reload # 重新加载防火墙规则 - 网络隔离:若使用虚拟机部署,建议将虚拟机网络模式设置为“桥接”或“仅主机”,避免NAT模式导致的网络通信问题。