Ubuntu与Hadoop网络配置有何要点
小樊
43
2025-12-26 15:00:09
Ubuntu 与 Hadoop 网络配置要点
一、网络与主机规划
- 使用固定内网网段为集群分配地址,并为每台机器设置唯一的主机名(如:master、slave1、slave2),便于后续配置与排查。
- 在所有节点统一维护 /etc/hosts,用主机名映射内网 IP,避免依赖 DNS;示例:
192.168.5.11 master
192.168.5.12 slave1
192.168.5.13 slave2
- 虚拟机场景建议将网络设为桥接(或稳定的 NAT),并确保克隆或新增节点拥有不同的 MAC 地址,防止 IP 冲突。
- 规划并预留 Hadoop 常用端口(示例):HDFS NameNode 9000、ResourceManager 8088、NodeManager 8042、DataNode 9864/9866,便于防火墙放行与端口连通性验证。
二、Ubuntu 网络配置
- Ubuntu 22.04 采用 Netplan 管理网络,编辑 /etc/netplan/*.yaml(如:01-network-manager-all.yaml),设置静态 IP、网关与 DNS,然后执行 sudo netplan apply 生效。示例片段:
network:
ethernets:
ens33:
dhcp4: false
addresses: [192.168.5.11/24]
routes: [{ to: default, via: 192.168.5.2 }]
nameservers: { addresses: [8.8.8.8, 8.8.4.4] }
version: 2
- 修改 /etc/hostname 为各自主机名,并同步 /etc/hosts 到所有节点;如需从宿主机访问集群 Web UI,可在 Windows C:\Windows\System32\drivers\etc\hosts 添加相同映射。
- 验证:使用 ip a 查看地址,ping master/slave1 测试互通,ping 8.8.8.8 测试外网解析与路由。
三、Hadoop 关键网络参数
- 统一使用主机名进行配置,避免写死 IP,便于节点迁移与扩容。
- 常用配置示例:
- core-site.xml:设置默认文件系统为 hdfs://master:9000。
- hdfs-site.xml:设置副本数 dfs.replication=3,并分别指定 dfs.namenode.name.dir 与 dfs.datanode.data.dir 的本地存储路径。
- mapred-site.xml:设置 mapreduce.framework.name=yarn。
- yarn-site.xml:设置 yarn.resourcemanager.hostname=master。
- workers(或 slaves):逐行列出所有 DataNode 主机名(如:slave1、slave2)。
四、SSH 免密与集群分发
- 在所有节点安装 openssh-server,在 master 生成密钥对:ssh-keygen -t rsa;将公钥追加到 ~/.ssh/authorized_keys,并验证 ssh master 可免密登录本机。
- 将 master 的公钥分发到各 slave:ssh-copy-id hadoop@slave1(按提示输入密码),完成后在 master 上验证 ssh slave1 免密登录。
- 使用 scp/rsync 或自研分发脚本(如 xsync)将 Hadoop 安装目录与环境变量脚本同步到所有节点,保持版本与配置一致。
五、连通性验证与常见问题
- 基础连通性:
- 节点互 ping:如 ping master -c 3、ping slave1 -c 3。
- 服务端口:在浏览器访问 http://master:8088(YARN)、http://master:9870(HDFS NameNode Web UI),并在各节点用 ss -tulpen | grep -E ‘9000|8088|9864’ 检查监听。
- 常见问题与处理:
- /etc/hosts 冲突:避免将 127.0.0.1 映射到实际主机名(如 “127.0.0.1 master”),否则会导致本机解析异常。
- 虚拟机 IP 冲突:克隆后务必生成新的 MAC 地址并重新获取/设置静态 IP。
- 防火墙/安全组:放行 9000、8088、8042、9864/9866 等端口,或在内网测试环境临时关闭防火墙以定位问题。
- SSH 仍提示密码:检查 ~/.ssh 权限(建议 700/600),确认公钥已正确追加到远端 authorized_keys。