Hadoop网络设置Linux如何操作
小樊
45
2025-11-14 23:29:28
Linux 下 Hadoop 网络设置实操指南
一 基础网络与主机名
- 设置每台机器的主机名(以 master 为例):执行命令:hostnamectl set-hostname master,其余节点分别设为 slave1/slave2 等。
- 配置 /etc/hosts 在所有节点保持一致,示例:
192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2
- 配置 DNS(可选,确保域名可解析):编辑 /etc/resolv.conf,添加
nameserver 8.8.8.8
nameserver 8.8.4.4
- 说明:Hadoop 强依赖主机名解析,务必保证 /etc/hosts 正确且各节点一致。
二 静态 IP 与 DNS 配置
- RHEL/CentOS 系(ifcfg 文件方式):编辑 /etc/sysconfig/network-scripts/ifcfg-eth0(接口名以实际为准),示例:
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
应用:执行 sudo systemctl restart network。
- 新内核/Ubuntu 系(ip/Netplan 方式):可用命令临时设置
sudo ip addr add 192.168.1.100/24 dev eth0
或采用 Netplan 配置后执行 netplan apply。
- 提示:生产环境建议使用 静态 IP,避免 DHCP 导致地址漂移影响集群通信。
三 节点互通与安全策略
- 配置 SSH 免密登录(以 master 免密登录各节点为例):
- 生成密钥:ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
- 分发公钥:ssh-copy-id user@slave1(逐台分发)
- 权限:chmod 700 ~/.ssh;chmod 600 ~/.ssh/authorized_keys
- 防火墙放行(示例为 firewalld):
sudo firewall-cmd --permanent --zone=public --add-port=8020/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8032/tcp
sudo firewall-cmd --reload
- SELinux(仅测试环境建议临时关闭):setenforce 0
- 说明:确保 NameNode/ResourceManager 与各 DataNode/NodeManager 之间端口可达。
四 Hadoop 关键网络参数配置
- core-site.xml(默认文件系统与临时目录):
fs.defaultFS
hdfs://master:8020
hadoop.tmp.dir
/opt/hadoop/tmp
- hdfs-site.xml(副本与目录,按需调整):
dfs.replication
3
dfs.namenode.name.dir
/opt/hadoop/dfs/name
dfs.datanode.data.dir
/opt/hadoop/dfs/data
dfs.namenode.rpc-address
master:8020
dfs.datanode.address
0.0.0.0:50010
- yarn-site.xml(资源管理器与 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(使用 YARN 调度):
mapreduce.framework.name
yarn
- 环境变量(~/.bashrc 或 /etc/profile.d/hadoop.sh):
export JAVA_HOME=/usr/java/latest
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使生效:source ~/.bashrc
- 说明:端口与地址请与集群拓扑一致,避免 localhost 造成跨节点访问异常。
五 启动验证与性能优化
- 首次启动前格式化 NameNode:hdfs namenode -format
- 启动集群:
start-dfs.sh
start-yarn.sh
- 验证:
- 进程:在各节点执行 jps,应见到 NameNode/DataNode/ResourceManager/NodeManager 等进程
- Web:http://master:50070(HDFS NameNode)与 http://master:8088(YARN ResourceManager)
- Linux 网络与句柄优化(示例):
- 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”
sudo sysctl -w net.ipv4.tcp_wmem=“4096 65536 16777216”
- 连接与队列:
sudo sysctl -w net.ipv4.ip_local_port_range=“1024 65535”
sudo sysctl -w net.core.somaxconn=65535
- 文件句柄:ulimit -n 65535(并在 /etc/security/limits.conf 持久化)