Ubuntu上Hadoop网络配置指南
1. 网络接口配置
确保Ubuntu节点的网络接口(如eth0或ens33)配置静态IP地址(集群节点需固定IP,避免DHCP变动导致通信故障)。
- Ubuntu 18.04及以上版本:使用
ip命令临时配置(重启失效),或编辑/etc/netplan/*.yaml文件永久生效(示例):应用配置:network: version: 2 ethernets: ens33: dhcp4: no 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 apply。 - 验证网络连通性:使用
ping <其他节点IP>测试节点间网络是否畅通。
2. 主机名与hosts文件配置
统一集群节点的主机名,并在/etc/hosts文件中映射IP与主机名(避免DNS解析延迟或失败)。
- 设置主机名:
sudo hostnamectl set-hostname <节点主机名> # 如namenode、datanode1 - 编辑hosts文件:
在所有节点的/etc/hosts中添加以下内容(替换为实际IP和主机名):
保存后,通过192.168.1.100 namenode 192.168.1.101 datanode1 192.168.1.102 datanode2 192.168.1.103 resourcemanager 192.168.1.104 nodemanager1ping <主机名>验证解析是否正确。
3. SSH免密码登录配置
Hadoop集群节点间需无密码通信(如NameNode与DataNode、ResourceManager与NodeManager),配置SSH免密码登录:
- 生成密钥对:在所有节点执行:
ssh-keygen -t rsa # 默认保存到~/.ssh/id_rsa - 分发公钥:将本机公钥复制到其他节点(以namenode为例):
测试无密码登录:ssh-copy-id user@datanode1 # 替换为实际用户名和节点主机名 ssh-copy-id user@datanode2 ssh-copy-id user@resourcemanagerssh user@datanode1,无需输入密码即可连接。
4. Hadoop核心配置文件修改
进入Hadoop安装目录的etc/hadoop子目录,修改以下关键配置文件:
- core-site.xml:配置HDFS默认文件系统和Hadoop集群基本设置:
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://namenode:9000value> property> <property> <name>hadoop.tmp.dirname> <value>/path/to/hadoop-tmpvalue> property> configuration> - hdfs-site.xml:配置HDFS副本数、NameNode/DataNode数据目录:
<configuration> <property> <name>dfs.replicationname> <value>3value> property> <property> <name>dfs.namenode.name.dirname> <value>/path/to/namenode/datavalue> property> <property> <name>dfs.datanode.data.dirname> <value>/path/to/datanode/datavalue> property> configuration> - mapred-site.xml:配置MapReduce框架为YARN:
<configuration> <property> <name>mapreduce.framework.namename> <value>yarnvalue> property> configuration> - yarn-site.xml:配置YARN资源管理器和NodeManager辅助服务:
保存所有配置文件。<configuration> <property> <name>yarn.resourcemanager.hostnamename> <value>resourcemanagervalue> property> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce_shufflevalue> property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.classname> <value>org.apache.hadoop.mapred.ShuffleHandlervalue> property> configuration>
5. 防火墙配置
允许Hadoop服务所需端口通过防火墙(Ubuntu默认使用ufw,部分系统可能用firewalld):
- 开放常用端口:
sudo ufw allow 9000/tcp # HDFS NameNode IPC端口 sudo ufw allow 50070/tcp # HDFS Web UI端口 sudo ufw allow 8020/tcp # HDFS NameNode元数据端口(部分版本) sudo ufw allow 8032/tcp # YARN ResourceManager端口 sudo ufw allow 8042/tcp # YARN NodeManager端口 sudo ufw allow 10020/tcp # MapReduce JobHistory Server端口 sudo ufw allow 19888/tcp # MapReduce JobHistory Web UI端口 - 重载防火墙:
若使用sudo ufw reloadfirewalld(如CentOS),可将ufw替换为firewall-cmd命令。
6. 格式化HDFS(首次启动需执行)
若为首次设置Hadoop集群或NameNode元数据损坏,需格式化HDFS(注意:格式化会清除NameNode中的所有数据,仅首次启动或元数据损坏时执行):
hdfs namenode -format
7. 启动Hadoop集群
依次启动HDFS和YARN服务:
start-dfs.sh # 启动HDFS(NameNode、DataNode)
start-yarn.sh # 启动YARN(ResourceManager、NodeManager)
启动后,可通过以下命令查看服务状态:
jps # 查看Hadoop进程(NameNode、DataNode、ResourceManager、NodeManager等)
8. 验证网络配置
- 检查HDFS状态:
hdfs dfsadmin -report # 查看DataNode是否注册、存储容量等信息 - 检查YARN状态:
yarn node -list # 查看NodeManager是否注册、资源使用情况 - 测试文件操作:
在HDFS中创建目录并上传文件,验证集群功能是否正常:hdfs dfs -mkdir -p /user/<用户名>/test hdfs dfs -put ~/test.txt /user/<用户名>/test hdfs dfs -ls /user/<用户名>/test
注意事项
- 主机名一致性:确保
/etc/hosts中的主机名与hostnamectl设置的主机名完全一致,避免解析错误。 - 端口冲突:检查Hadoop所需端口是否被其他服务占用(如
netstat -tulnp | grep <端口>),若有冲突需修改配置文件中的端口号。 - 日志分析:若启动失败,查看Hadoop日志文件(位于
$HADOOP_HOME/logs目录下),如hadoop-<用户名>-namenode-<主机名>.log,定位具体错误原因。
以上就是关于“Ubuntu上Hadoop的网络配置指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm