8020 是什么
8020 是 Hadoop 2.x 起 HDFS NameNode 的 RPC 默认端口,客户端读取元数据、申请写入都先经过它,配置项 fs.defaultFS 里写的 hdfs://host:8020 指的就是这个端口。旧发行版常用 9000,因此照老教程操作容易连不上,进而误判为集群故障。
单点角色与 HA 部署
NameNode 负责整个 HDFS 的元数据,它不可用时读写全部失败。生产环境通常部署高可用并启用自动切换,客户端连接的是一个逻辑名称服务而不是固定主机;因此排障除确认 8020 可达,还要看当前处于 Active 状态的节点是哪一个。
基本信息
| 服务 | HDFS NameNode RPC |
|---|---|
| 协议 | TCP 8020 |
| 旧版本端口 | Hadoop 1.x 常用 9000 |
| Web 界面 | 9870(Hadoop 3)或 50070(Hadoop 2) |
| 安全等级 | 仅大数据集群网段 |
典型使用场景
- 客户端读写 HDFS 前与 NameNode 建立元数据连接
- 排查「连不上 HDFS」时先确认 8020 可达与名称服务地址
- 高可用切换后确认客户端指向的逻辑名称服务解析到新节点
- 集群扩缩容后核对客户端配置与网络策略是否同步
- 安全核查时确认该端口只对集群网段开放
确认与测试
确认与测试
hdfs getconf -confKey fs.defaultFS # 查看实际使用的名称服务地址
hdfs dfs -ls / # 简单读写验证
ss -lntp | grep 8020 # 在 NameNode 上确认监听
hdfs haadmin -getServiceState nn1 # 高可用环境下确认节点状态客户端配置要点
客户端配置要点
<!-- core-site.xml -->
<!-- <property> -->
<!-- <name>fs.defaultFS</name> -->
<!-- <value>hdfs://mycluster:8020</value> -->
<!-- </property> -->相关端口
| 端口 | 组件 | 说明 |
|---|---|---|
| 8020 | NameNode RPC | 客户端元数据与写入入口 |
| 9870 | NameNode Web UI | Hadoop 3 默认界面端口 |
| 9864 | DataNode Web UI | 单节点数据块信息 |
| 8032 | ResourceManager RPC | YARN 作业提交入口 |
高可用环境下客户端应连逻辑名称服务:配置里若写死某一台主机名,切换后会出现部分客户端仍指向原节点、写入被拒的情况,而界面看起来一切正常。
与资源调度端口的分工
这个端口只负责存储层的元数据与写入入口,作业提交与资源分配走的是资源管理器上的另一个端口。因此「提交作业报错」和「读写数据报错」应分别从两个端口入手,混在一起排查只会绕远路。
日常巡检建议同时看三处:名称服务地址是否被正确解析、应用侧的连接串是否改过、数据节点是否全部在线。三处不一致时,看到的报错往往与根因相隔较远。