Linux下Hadoop的网络配置要点
导读:1. 网络接口与IP配置 确保所有节点的网络接口(如eth0)配置静态IP(避免DHCP动态分配导致IP变动),并设置正确的子网掩码、网关和DNS。静态IP需写入网络接口配置文件(如CentOS的/etc/sysconfig/network...
1. 网络接口与IP配置
确保所有节点的网络接口(如eth0)配置静态IP(避免DHCP动态分配导致IP变动),并设置正确的子网掩码、网关和DNS。静态IP需写入网络接口配置文件(如CentOS的/etc/sysconfig/network-scripts/ifcfg-eth0,Ubuntu的/etc/netplan/*.yaml),配置后重启网络服务(systemctl restart network或netplan apply)使生效。
2. 主机名与DNS解析
- 主机名设置:为每台节点设置唯一主机名(如
master、slave1),使用hostnamectl set-hostname < 主机名>命令,并写入/etc/hostname文件。 - DNS与hosts映射:编辑
/etc/resolv.conf添加公共DNS(如8.8.8.8、8.8.4.4);在所有节点的/etc/hosts文件中添加IP与主机名的映射(如192.168.1.100 master、192.168.1.101 slave1),确保节点间可通过主机名互相解析。
3. SSH免密码登录
配置所有节点之间的SSH免密码登录,确保NameNode能无密码访问DataNode、ResourceManager能无密码访问NodeManager。步骤如下:
- 在主节点生成RSA密钥对:
ssh-keygen -t rsa(直接回车,默认保存到~/.ssh/id_rsa)。 - 将公钥复制到所有从节点:
ssh-copy-id user@slave1、ssh-copy-id user@slave2(替换为用户和从节点主机名/IP)。 - 验证免密登录:
ssh user@slave1,无需输入密码即可登录。
4. Hadoop核心配置文件调整
修改$HADOOP_HOME/etc/hadoop目录下的关键配置文件,确保集群通信参数正确:
- core-site.xml:设置Hadoop默认文件系统和RPC地址,例如
fs.defaultFS为hdfs://master:9000(master为主节点主机名),hadoop.tmp.dir为临时目录(如/opt/hadoop/tmp)。 - hdfs-site.xml:配置HDFS副本数(生产环境设为3,测试环境可设为1)和数据目录,例如
dfs.replication为3,dfs.namenode.name.dir为/opt/hadoop/dfs/name,dfs.datanode.data.dir为/opt/hadoop/dfs/data。 - yarn-site.xml:指定ResourceManager主机名和Shuffle服务,例如
yarn.resourcemanager.hostname为master,yarn.nodemanager.aux-services为mapreduce_shuffle,yarn.nodemanager.aux-services.mapreduce.shuffle.class为org.apache.hadoop.mapred.ShuffleHandler。 - mapred-site.xml(若未自动生成):设置MapReduce框架为YARN,例如
mapreduce.framework.name为yarn。
5. 防火墙与端口开放
Hadoop集群需要开放多个端口用于节点间通信,使用firewall-cmd(CentOS)或ufw(Ubuntu)开放必要端口并重载防火墙:
- 关键端口:HDFS NameNode RPC(8020/9000)、DataNode数据传输(50010/50020)、YARN ResourceManager(8032/8088)、NodeManager(8042)。
- 示例命令:
firewall-cmd --permanent --zone=public --add-port=8020/tcp、firewall-cmd --permanent --zone=public --add-port=8032/tcp、firewall-cmd --reload。
6. 网络性能优化
调整内核参数提升网络传输效率,编辑/etc/sysctl.conf文件,添加以下配置:
- 增大TCP缓冲区:
net.core.rmem_max=16777216、net.core.wmem_max=16777216。 - 设置TCP读写缓冲区范围:
net.ipv4.tcp_rmem=4096 87380 16777216、net.ipv4.tcp_wmem=4096 65536 16777216。 - 使用Cubic拥塞控制算法:
net.ipv4.tcp_congestion_control=cubic。
应用配置:sudo sysctl -p。
7. 验证网络连通性
配置完成后,通过以下命令验证网络是否正常:
- Ping测试:
ping slave1(从主节点ping从节点),确保节点间IP连通。 - SSH测试:
ssh slave1,验证免密登录是否成功。 - 服务状态检查:
jps(查看Hadoop进程是否启动)、hdfs dfsadmin -report(查看HDFS节点状态)、yarn node -list(查看YARN节点状态)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下Hadoop的网络配置要点
本文地址: https://pptw.com/jishu/745274.html
