1. 配置静态IP地址
静态IP是Hadoop集群节点稳定通信的基础。Debian系统需根据版本选择配置文件:
/etc/network/interfaces,添加如下内容(以eth0接口为例):auto eth0
iface eth0 inet static
address 192.168.1.100 # 节点静态IP
netmask 255.255.255.0 # 子网掩码
gateway 192.168.1.1 # 网关
dns-nameservers 8.8.8.8 8.8.4.4 # DNS服务器
Netplan(推荐),编辑/etc/netplan/01-netcfg.yaml:network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24] # CIDR格式
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
应用配置:sudo netplan apply。2. 配置主机名解析(/etc/hosts文件)
避免依赖DNS解析延迟,直接在每个节点的/etc/hosts中添加集群所有节点的IP与主机名映射:
127.0.0.1 localhost
192.168.1.100 namenode # NameNode主机名
192.168.1.101 datanode1 # DataNode1主机名
192.168.1.102 datanode2 # DataNode2主机名
确保所有节点的/etc/hosts内容一致,可通过ping namenode验证解析是否正确。
3. 实现SSH免密码登录
Hadoop节点间需要无密码SSH通信(如NameNode与DataNode交互)。步骤如下:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"(直接回车使用默认路径和空密码)。ssh-copy-id user@remote_host(如ssh-copy-id hadoop@datanode1),输入远程节点密码后完成复制。ssh user@remote_host(如ssh hadoop@datanode1),无需输入密码即为成功。4. 优化TCP/IP参数
调整内核参数提升网络传输性能,编辑/etc/sysctl.conf,添加以下内容:
net.ipv4.tcp_syncookies=1 # 防止SYN洪水攻击
net.ipv4.tcp_tw_reuse=1 # 复用TIME-WAIT状态的连接
net.ipv4.tcp_window_scaling=1 # 启用窗口缩放(提升大带宽利用率)
net.core.rmem_max=16777216 # 接收缓冲区最大值
net.core.wmem_max=16777216 # 发送缓冲区最大值
使配置生效:sudo sysctl -p。
5. 配置Hadoop网络相关参数
修改Hadoop核心配置文件(位于$HADOOP_HOME/etc/hadoop/),确保网络通信正确:
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- NameNode主机名:端口 -->
</property>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 副本数(根据集群规模调整,生产环境建议3) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hdfs/namenode</value> <!-- NameNode元数据目录 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hdfs/datanode</value> <!-- DataNode数据目录 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6. 配置防火墙规则
允许Hadoop服务所需端口通过防火墙(以ufw为例):
sudo ufw allow ssh # SSH(默认22端口)
sudo ufw allow 50010/tcp # HDFS DataNode数据传输端口
sudo ufw allow 50020/tcp # HDFS DataNode IPC端口
sudo ufw allow 50070/tcp # HDFS NameNode Web UI(默认)
sudo ufw allow 50075/tcp # HDFS DataNode Web UI
sudo ufw allow 8088/tcp # YARN ResourceManager Web UI
sudo ufw allow 8042/tcp # YARN NodeManager Web UI
sudo ufw enable # 启用防火墙
若使用其他防火墙工具(如iptables),需添加对应规则。
7. 验证网络连通性
配置完成后,通过以下命令验证:
ping namenode(从DataNode节点执行),确保能通NameNode。ssh namenode(从DataNode节点执行),验证无密码登录是否成功。hdfs dfs -ls /(查看HDFS根目录),若能正常列出目录,说明网络配置正确。