Hadoop在Linux中如何配置网络
小樊
37
2026-01-03 04:57:58
Linux 上 Hadoop 网络配置实操指南
一 基础网络与主机名解析
- 设置主机名(每台机器唯一):执行命令:hostnamectl set-hostname master(示例将本机设为 master)。
- 配置静态 IP(示例以 CentOS/RHEL 网卡 eth0 为例):编辑 /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
应用:执行 systemctl restart network。
- 配置 DNS:编辑 /etc/resolv.conf,添加:
nameserver 8.8.8.8
nameserver 8.8.4.4
- 统一主机名解析:在所有节点编辑 /etc/hosts,加入所有节点的 IP 与主机名映射,例如:
192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2
- 连通性自检:
- 节点互 ping:ping master、ping slave1
- 解析自检:nslookup master、getent hosts master
- 端口连通(Hadoop 常用端口示例):nc -vz master 9000(HDFS RPC)、nc -vz master 8088(YARN Web)
说明:以上主机名、静态 IP、DNS 与 /etc/hosts 的做法为 Hadoop 集群通信的基础配置。
二 安全策略与 SSH 免密登录
- 防火墙(测试环境可临时关闭,生产环境请按需放通端口):
- firewalld:执行 systemctl stop firewalld && systemctl disable firewalld
- 或仅放通必要端口(示例):firewall-cmd --permanent --add-port=9000/tcp --add-port=8088/tcp && firewall-cmd --reload
- SELinux(开发环境可放宽):执行 setenforce 0(永久需修改 /etc/selinux/config 的 SELINUX=permissive)。
- SSH 免密登录(建议在所有节点均生成密钥,并将公钥分发到集群所有节点):
- 生成密钥:ssh-keygen -t rsa(一路回车)
- 分发公钥:ssh-copy-id master、ssh-copy-id slave1、ssh-copy-id slave2
- 权限安全:chmod 700 ~/.ssh;chmod 600 ~/.ssh/authorized_keys
- 验证:ssh master、ssh slave1 无需口令即能登录
说明:关闭防火墙/SELinux 与配置 SSH 免密是节点间自动化启动与通信的前提。
三 Hadoop 关键网络参数配置
- 环境变量(~/.bashrc 或 /etc/profile):
export JAVA_HOME=/usr/java/latest
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使生效:source ~/.bashrc
- 核心配置文件($HADOOP_HOME/etc/hadoop/):
- core-site.xml:
fs.defaultFS
hdfs://master:9000
- hdfs-site.xml:
dfs.replication
3
dfs.namenode.name.dir
/data/hadoop/dfs/name
dfs.datanode.data.dir
/data/hadoop/dfs/data
- mapred-site.xml(如启用 YARN):
mapreduce.framework.name
yarn
- yarn-site.xml:
yarn.resourcemanager.hostname
master
yarn.nodemanager.aux-services
mapreduce_shuffle
- workers(旧版为 slaves):列出所有 DataNode/NodeManager 主机名,每行一个,例如:
master
slave1
slave2
说明:以上关键项使用主机名(而非 localhost),端口 9000 为 HDFS RPC 常用端口,副本数 3 为常见生产值。
四 启动与验证
- 初始化 HDFS:在 NameNode 执行 hdfs namenode -format(仅首次)。
- 启动集群:
- 启动 HDFS:start-dfs.sh
- 启动 YARN:start-yarn.sh
- 进程自检:执行 jps,应看到 NameNode/DataNode/ResourceManager/NodeManager 等关键进程。
- Web 与连通性验证:
- HDFS NameNode:http://master:50070
- YARN ResourceManager:http://master:8088
- 命令行:hdfs dfsadmin -report(查看集群节点与存储概况)
说明:上述端口与进程用于快速判断网络与服务是否正常。
五 常见问题与排查清单
- 主机名解析错误:/etc/hosts 与命令提示的主机名不一致,或 Windows 客户端未加映射(如需在 Windows 访问,编辑 C:\Windows\System32\drivers\etc\hosts 添加与 Linux 一致的映射)。
- 端口不通:firewalld/SELinux 未放行(或云安全组未放通),用 nc/telnet 检测 9000/8088 等端口连通性。
- SSH 仍需密码:检查 ~/.ssh 权限是否为 700/600,以及公钥是否已正确分发到所有节点的 authorized_keys。
- 副本数不足:单节点或仅有 1 个 DataNode 时,将 dfs.replication 设为 1,避免写入报错。
- 配置未生效:确认 JAVA_HOME/HADOOP_HOME 已导出,Hadoop 配置文件位于 $HADOOP_HOME/etc/hadoop/,并使用 source ~/.bashrc 重载环境。