Ubuntu Hadoop网络配置详细步骤
Hadoop集群需要稳定的网络环境,建议所有节点(NameNode、DataNode、ResourceManager、NodeManager等)配置静态IP。
ip a命令确认网络接口名称(如ens33,不同系统可能不同)。sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.baksudo nano /etc/netplan/01-netcfg.yamlnetwork:
version: 2
ethernets:
ens33:
addresses: ["192.168.1.100/24"] # 静态IP及子网掩码
gateway4: "192.168.1.1" # 网关地址
nameservers:
addresses: ["8.8.8.8", "8.8.4.4"] # DNS服务器
应用配置:sudo netplan applyip a命令检查IP是否生效。确保节点间可通过主机名互相识别,避免依赖DNS解析。
master,DataNode设为slave1):sudo hostnamectl set-hostname <主机名>sudo hostname <主机名>/etc/hosts,添加IP与主机名映射:192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2
保存后,使用ping <主机名>验证解析是否正确。Hadoop集群节点间需要频繁通信(如NameNode与DataNode、ResourceManager与NodeManager),SSH免密码登录可简化操作。
ssh-keygen -t rsa(直接按回车键,使用默认路径和空密码)。ssh-copy-id user@master(user为用户名,master为目标主机名/IP)slave1、slave2等节点。ssh user@master测试,无需输入密码即可登录。修改Hadoop配置文件,定义集群通信协议、端口及数据存储路径。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value> <!-- NameNode的IP/主机名及端口 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 数据副本数(集群节点数≥3时建议设为3) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/namenode</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/datanode</value> <!-- DataNode数据存储路径 -->
</property>
</configuration>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value> <!-- ResourceManager的IP/主机名 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- MapReduce Shuffle服务 -->
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> <!-- 使用YARN作为资源管理器 -->
</property>
</configuration>
将配置文件放入$HADOOP_HOME/etc/hadoop/目录下。允许Hadoop服务所需端口通过防火墙,避免网络阻断。
sudo ufw allow 9000/tcp # HDFS NameNode端口
sudo ufw allow 50070/tcp # HDFS Web UI端口
sudo ufw allow 8088/tcp # YARN ResourceManager Web UI端口
sudo ufw allow 50010/tcp # DataNode数据传输端口
sudo ufw allow 50020/tcp # DataNode IPC端口
sudo ufw enable # 启用防火墙
sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8088/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50010/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50020/tcp
sudo firewall-cmd --reload
若防火墙未安装,可使用sudo apt install ufw(Ubuntu)或sudo yum install firewalld(CentOS)安装。首次配置Hadoop时,需要格式化NameNode元数据,并启动集群服务。
hdfs namenode -formatstart-dfs.shstart-yarn.shhdfs dfsadmin -reportyarn node -listhttp://<NameNode_IP>:50070http://<ResourceManager_IP>:8088