/etc/sysconfig/network-scripts/ifcfg-ens33),设置BOOTPROTO=static,并填写IPADDR(如192.168.1.100)、NETMASK(如255.255.255.0)、GATEWAY(如192.168.1.1)、DNS1(如8.8.8.8)等参数,保存后重启网络服务(sudo systemctl restart network)。hadoop1),使用hostnamectl set-hostname hadoop1命令;编辑/etc/hosts文件,添加IP与主机名的映射(如192.168.1.100 hadoop1、192.168.1.101 hadoop2),确保节点间可通过主机名互相访问。ssh-keygen -t rsa),将公钥复制到所有DataNode(ssh-copy-id user@datanode-ip),实现集群内节点无密码通信,便于Hadoop进程管理。<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode-host:9000</value> <!-- 替换为NameNode的实际主机名/IP -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/path/to/hadoop-tmp</value> <!-- 临时目录,需提前创建 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 数据副本数,生产环境建议3 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/path/to/namenode/data</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/path/to/datanode/data</value> <!-- DataNode数据存储路径 -->
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value> <!-- NameNode RPC处理线程数,根据集群规模调整 -->
</property>
</configuration>
sysctl命令优化TCP缓冲区和连接数,提升网络传输性能。示例命令:sudo sysctl -w net.core.rmem_max=16777216 # 接收缓冲区最大值
sudo sysctl -w net.core.wmem_max=16777216 # 发送缓冲区最大值
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216" # TCP接收缓冲区分段
sudo sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216" # TCP发送缓冲区分段
sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535" # 本地端口范围
sudo sysctl -w net.core.somaxconn=65535 # 监听队列最大长度
可将上述命令添加到/etc/rc.local文件中,实现开机自动生效。/etc/security/limits.conf文件,添加:* soft nofile 65535
* hard nofile 65535
编辑/etc/pam.d/common-session和/etc/pam.d/common-session-noninteractive文件,添加:session required pam_limits.so
使配置生效。firewalld,需开放HDFS相关端口(如NameNode的9000端口、DataNode的50010端口、WebHDFS的50070端口)。示例命令:sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50010/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp
sudo firewall-cmd --reload
生产环境中,建议仅开放必要端口,避免安全风险。sudo setenforce 0)或永久禁用(编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled)。ping命令测试节点间网络连通性(如ping hadoop2),确保所有节点能互相访问。hdfs namenode -format),启动HDFS集群(start-dfs.sh),使用jps命令检查NameNode、DataNode进程是否启动成功。http://namenode-host:50070),查看集群状态和DataNode列表,确认网络配置正确。以上步骤涵盖了Linux环境下HDFS网络配置的核心环节,需根据实际集群规模和环境调整参数(如IP地址、路径、端口等)。生产环境中,还需考虑高可用(HA)配置、网络带宽优化等高级需求。