Debian上如何配置Hadoop网络
小樊
33
2025-12-07 08:09:09
在 Debian 上配置 Hadoop 网络
一 基础网络与主机解析
- 规划节点与地址:至少包含 1 个 NameNode、多个 DataNode,如有需要再配置 ResourceManager 与 NodeManager。为各节点分配同网段静态 IP,例如:
- 192.168.1.100 namenode
- 192.168.1.101 datanode1
- 192.168.1.102 datanode2
- 配置主机名解析:在所有节点的 /etc/hosts 中添加上述映射,确保节点间可用主机名互通。
- 静态 IP 示例(编辑 /etc/network/interfaces):
- auto eth0
- iface eth0 inet static
- address 192.168.1.100
- netmask 255.255.255.0
- gateway 192.168.1.1
- dns-nameservers 8.8.8.8 8.8.4.4
- 应用:执行 sudo systemctl restart networking(或 service networking restart)。如使用 NetworkManager,可用 nmcli 或 nmtui 进行配置。
- 基础连通性验证:ping 网关与外部地址、互 ping 主机名,确认网络与 DNS 正常。
二 SSH 免密与防火墙
- SSH 免密登录(以 namenode → 各节点 为例):
- 在 namenode 生成密钥:ssh-keygen -t rsa -b 2048
- 分发公钥:ssh-copy-id datanode1、ssh-copy-id datanode2
- 验证:ssh datanode1 无需口令即能登录。
- 防火墙放行(示例 ufw):
- 放行 SSH:sudo ufw allow 22/tcp
- 放行 HDFS/YARN 常用端口(示例):sudo ufw allow 8020/tcp, 50070/tcp, 50075/tcp, 8088/tcp
- 按需开放或临时关闭防火墙进行排障:sudo ufw disable(测试后请恢复)。
三 Hadoop 核心网络配置
- 环境变量(所有节点一致,建议写入 /etc/profile 或 ~/.bashrc):
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- export HADOOP_HOME=/usr/local/hadoop
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使生效:source /etc/profile 或 source ~/.bashrc
- 关键配置文件(示例值,按实际主机名与端口调整):
- core-site.xml
- fs.defaultFShdfs://namenode:8020
- hdfs-site.xml
- dfs.replication3
- dfs.namenode.name.dirfile:///usr/local/hadoop/dfs/name
- dfs.datanode.data.dirfile:///usr/local/hadoop/dfs/data
- mapred-site.xml
- mapreduce.framework.nameyarn
- yarn-site.xml
- yarn.nodemanager.aux-servicesmapreduce_shuffle
- yarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler
- 说明:
- 端口 8020 为常见的 HDFS RPC 端口;部分教程使用 9000,两者择一并保持集群一致。
- 目录路径需提前创建并赋权(如:sudo mkdir -p /usr/local/hadoop/dfs/{name,data})。
四 启动与验证
- 格式化 HDFS(仅在 NameNode 执行一次):hdfs namenode -format
- 启动服务:
- 启动 HDFS:start-dfs.sh(在 NameNode 执行)
- 启动 YARN:start-yarn.sh(在 ResourceManager 执行)
- 进程与连通性验证:
- 进程检查:jps(应见到 NameNode/DataNode/ResourceManager/NodeManager 等)
- HDFS 检查:hdfs dfs -ls /
- YARN 节点:yarn node -list
- Web 界面(默认端口):NameNode 50070,ResourceManager 8088。
五 网络性能与安全优化
- Linux 内核网络参数(示例,提升吞吐与连接能力):
- 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
- HDFS 关键网络参数(按需调整,修改后需重启相应进程):
- dfs.namenode.handler.count(默认请求处理线程数,示例 100)
- dfs.datanode.handler.count(示例 100)
- dfs.datanode.max.transfer.threads(数据传输线程上限,示例 4096)
- dfs.namenode.datanode.registration.ip-hostname-check(IP 与主机名匹配校验,生产常设为 true)
- 其他建议:
- 使用 千兆及以上 以太网,避免网络成为瓶颈。
- 保持 /etc/hosts 与集群配置一致,避免主机名解析混乱。
- 变更配置后按顺序重启:先停 YARN,再停 HDFS,修改后反向启动;变更 core-site.xml/hdfs-site.xml 通常需要重启对应服务。