Hadoop在Linux下的网络配置
一、基础网络环境配置
-
设置静态IP地址
为避免动态IP变动导致集群通信故障,需为所有节点配置静态IP。根据Linux发行版差异,编辑对应网络配置文件(如CentOS/RHEL的/etc/sysconfig/network-scripts/ifcfg-ens33、Debian/Ubuntu的/etc/network/interfaces),设置以下参数:TYPE=Ethernet BOOTPROTO=static # 静态IP IPADDR=192.168.1.100 # 节点IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # DNS服务器 ONBOOT=yes # 开机自启保存后重启网络服务(
systemctl restart network或service network restart)。 -
配置主机名与hosts映射
- 为每个节点设置唯一主机名(如NameNode设为
hadoop-master,DataNode设为hadoop-slave1):hostnamectl set-hostname hadoop-master # 在对应节点执行 - 编辑所有节点的
/etc/hosts文件,添加IP与主机名映射(确保所有节点映射一致):192.168.1.100 hadoop-master 192.168.1.101 hadoop-slave1 192.168.1.102 hadoop-slave2
- 为每个节点设置唯一主机名(如NameNode设为
-
配置SSH免密码登录
实现NameNode与DataNode、ResourceManager与NodeManager之间的无密码通信:- 在NameNode上生成SSH密钥对:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 直接回车,无需设置密码 - 将公钥复制到所有DataNode和NodeManager节点:
ssh-copy-id hadoop-slave1 # 执行后输入目标节点密码 ssh-copy-id hadoop-slave2 - 验证免密码登录(从NameNode执行
ssh hadoop-slave1,无需密码即可登录)。
- 在NameNode上生成SSH密钥对:
二、Hadoop核心配置文件调整
-
core-site.xml
配置Hadoop默认文件系统和临时目录,指定NameNode的RPC地址:< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://hadoop-master:9000< /value> < !-- NameNode的RPC地址 --> < /property> < property> < name> hadoop.tmp.dir< /name> < value> /opt/hadoop/tmp< /value> < !-- 临时目录,需提前创建并授权 --> < /property> < /configuration> -
hdfs-site.xml
配置HDFS副本数、NameNode和DataNode的数据存储目录:< configuration> < property> < name> dfs.replication< /name> < value> 3< /value> < !-- 副本数,生产环境建议3,测试环境可设为1 --> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> /opt/hadoop/dfs/name< /value> < !-- NameNode元数据存储路径 --> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> /opt/hadoop/dfs/data< /value> < !-- DataNode数据存储路径 --> < /property> < /configuration> -
yarn-site.xml
配置ResourceManager地址和NodeManager的Shuffle服务:< configuration> < property> < name> yarn.resourcemanager.hostname< /name> < value> hadoop-master< /value> < !-- ResourceManager所在节点 --> < /property> < property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < !-- MapReduce Shuffle服务 --> < /property> < property> < name> yarn.nodemanager.aux-services.mapreduce.shuffle.class< /name> < value> org.apache.hadoop.mapred.ShuffleHandler< /value> < /property> < /configuration> -
mapred-site.xml
指定MapReduce任务运行框架为YARN:< configuration> < property> < name> mapreduce.framework.name< /name> < value> yarn< /value> < /property> < /configuration> -
slaves文件
列出所有DataNode和NodeManager节点(每行一个主机名),用于Hadoop自动管理集群节点:hadoop-slave1 hadoop-slave2
三、网络相关优化与安全配置
-
防火墙设置
开放Hadoop必需端口(如HDFS的9000、50010,YARN的8032、8042),允许集群内部通信:sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp # HDFS RPC sudo firewall-cmd --permanent --zone=public --add-port=50010/tcp # DataNode数据传输 sudo firewall-cmd --permanent --zone=public --add-port=8032/tcp # YARN ResourceManager sudo firewall-cmd --permanent --zone=public --add-port=8042/tcp # NodeManager sudo firewall-cmd --reload若无需防火墙,可直接停止并禁用(不推荐生产环境):
systemctl stop firewalld & & systemctl disable firewalld -
SELinux配置
若系统启用SELinux,需临时或永久关闭以避免权限问题:setenforce 0 # 临时关闭 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭 -
网络性能调优
编辑/etc/sysctl.conf,调整TCP缓冲区大小以提升大数据传输效率:net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_congestion_control = cubic应用配置:
sudo sysctl -p
四、验证网络配置
-
节点连通性检查
使用ping命令测试NameNode与各DataNode之间的网络连通性(如ping hadoop-slave1)。 -
SSH免密码登录验证
从NameNode执行ssh hadoop-slave1,确认无需输入密码即可登录。 -
Hadoop服务状态检查
- 格式化NameNode(首次启动需执行):
hdfs namenode -format - 启动HDFS和YARN:
start-dfs.sh & & start-yarn.sh - 使用
jps命令查看各节点进程(NameNode节点应显示NameNode、SecondaryNameNode;DataNode节点应显示DataNode;ResourceManager节点应显示ResourceManager;NodeManager节点应显示NodeManager)。 - 访问Hadoop Web界面(HDFS:
http://hadoop-master:50070,YARN:http://hadoop-master:8088),确认集群状态正常。
- 格式化NameNode(首次启动需执行):
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Hadoop在Linux下的网络配置
本文地址: https://pptw.com/jishu/737992.html
