在大数据生态系统中,各类组件(如分布式存储、计算框架、消息队列等)通过特定端口进行通信、提供服务或暴露管理界面。以下按组件分类,详细列出常用端口号及其用途,并说明注意事项。

一、协调服务类

1. ZooKeeper(分布式协调服务)
  • 2181

    • 用途:客户端连接端口(如 Kafka、HBase 等组件通过此端口连接 ZooKeeper)。
    • 说明:ZooKeeper 的默认客户端通信端口,必须开放给所有依赖 ZooKeeper 的服务。
    • 注意:可通过zoo.cfg的clientPort配置修改。
  • 2888

    • 用途:ZooKeeper 集群中 follower 与 leader 之间的通信端口(数据同步)。
    • 说明:仅集群模式下使用,单节点不启用。
  • 3888

    • 用途:ZooKeeper 集群的选举端口(当 leader 故障时,follower 通过此端口选举新 leader)。
    • 说明:仅集群模式下使用。

二、Hadoop 生态

1. HDFS(分布式文件系统)
  • 9870(Hadoop 3.x)/ 50070(Hadoop 2.x)

    • 用途:NameNode 的 Web UI 端口(用于查看 HDFS 状态、文件系统、节点信息等)。
    • 说明:管理员常用界面,可通过hdfs-site.xml的dfs.namenode.http-address配置修改。
  • 8020(Hadoop 3.x)/ 9000(Hadoop 2.x 默认)

    • 用途:NameNode 的 RPC 端口(客户端、DataNode 与 NameNode 的通信端口,用于元数据操作)。
    • 说明:核心通信端口,Hive、Spark 等组件读写 HDFS 时需通过此端口。
  • 9864(Hadoop 3.x)/ 50075(Hadoop 2.x)

    • 用途:DataNode 的 Web UI 端口(查看 DataNode 状态、存储信息、块分布等)。
    • 配置:dfs.datanode.http-address。
  • 9866(Hadoop 3.x)/ 50010(Hadoop 2.x)

    • 用途:DataNode 的数据传输端口(客户端读取 / 写入数据时与 DataNode 通信)。
    • 配置:dfs.datanode.address。
  • 9868(Hadoop 3.x)/ 50090(Hadoop 2.x)

    • 用途:Secondary NameNode 的 Web UI 端口(用于查看 Secondary NameNode 状态,辅助 NameNode 合并编辑日志)。
    • 配置:dfs.secondary.http-address。
2. YARN(资源管理器)
  • 8088

    • 用途:ResourceManager 的 Web UI 端口(查看集群资源、运行中的作业、应用状态等)。
    • 配置:yarn.resourcemanager.webapp.address。
  • 8032

    • 用途:ResourceManager 的 RPC 端口(客户端提交作业、申请资源时的通信端口)。
    • 配置:yarn.resourcemanager.address。
  • 8030

    • 用途:ResourceManager 的 scheduler 端口(与 ApplicationMaster 通信,分配资源)。
    • 配置:yarn.resourcemanager.scheduler.address。
  • 8042

    • 用途:NodeManager 的 Web UI 端口(查看节点资源使用情况、容器状态等)。
    • 配置:yarn.nodemanager.webapp.address。
  • 8040

    • 用途:NodeManager 的本地通信端口(ApplicationMaster 与 NodeManager 通信,管理容器生命周期)。
    • 配置:yarn.nodemanager.localizer.address。

三、数据仓库与查询引擎

1. Hive
  • 10000

    • 用途:HiveServer2 端口(客户端通过 JDBC/ODBC 连接 Hive 的端口,如 Beeline、Spark SQL 等)。
    • 说明:Hive 的核心服务端口,默认不加密,生产环境建议配置 SSL(端口改为 10009)。
    • 配置:hive-site.xml的hive.server2.thrift.port。
  • 9083

    • 用途:Hive Metastore 服务端口(Hive 元数据存储服务,供 HiveServer2、Spark 等访问元数据)。
    • 说明:元数据(表结构、分区信息等)通过此端口交互,需开放给依赖组件。
    • 配置:hive.metastore.uris(格式:thrift://<host>:9083)。
  • 10002

    • 用途:HiveServer2 的 Web UI 端口(查看 HiveServer2 的会话、查询历史等)。
    • 配置:hive.server2.webui.port。
2. Spark
  • 7077

    • 用途:Spark Standalone 模式下 Master 的 RPC 端口(Worker 节点注册、客户端提交作业)。
    • 说明:仅 Standalone 集群使用,YARN/Mesos 模式不依赖此端口。
  • 8080

    • 用途:Spark Standalone Master 的 Web UI 端口(查看集群资源、运行中的应用等)。
    • 配置:spark.master.webui.port。
  • 8081

    • 用途:Spark Standalone Worker 的 Web UI 端口(查看 Worker 节点的资源、运行的 Executor 等)。
    • 配置:spark.worker.webui.port。
  • 18080

    • 用途:Spark History Server 的 Web UI 端口(查看已完成的 Spark 应用日志、DAG 等)。
    • 配置:spark.history.ui.port。
  • 4040

    • 用途:Spark Driver 的 Web UI 端口(运行中的 Spark 应用实时监控界面,如 RDD 血缘、Stage 进度等)。
    • 说明:每个应用的 Driver 端口默认从 4040 开始,若被占用则递增(4041、4042 等)。
3. Flink
  • 8081

    • 用途:Flink JobManager 的 Web UI 端口(提交作业、监控作业状态、查看 Checkpoint 等)。
    • 配置:flink-conf.yaml的rest.port。
  • 6123

    • 用途:Flink JobManager 与 TaskManager 的 RPC 通信端口(TaskManager 注册、任务分配)。
    • 配置:jobmanager.rpc.port。
  • 8082

    • 用途:Flink History Server 的 Web UI 端口(查看已完成的作业历史、Checkpoint/Savepoint 信息)。
    • 配置:historyserver.web.port。

四、NoSQL 数据库

1. HBase
  • 16010(HBase 2.x)/ 60010(HBase 1.x)

    • 用途:HBase Master 的 Web UI 端口(查看集群状态、表信息、Region 分布等)。
    • 配置:hbase-site.xml的hbase.master.info.port。
  • 16030(HBase 2.x)/ 60030(HBase 1.x)

    • 用途:HBase RegionServer 的 Web UI 端口(查看 RegionServer 状态、存储的 Region 等)。
    • 配置:hbase.regionserver.info.port。
  • 16000(HBase 2.x)/ 60000(HBase 1.x)

    • 用途:HBase Master 的 RPC 端口(客户端与 Master 通信,如创建表、删除表)。
    • 配置:hbase.master.port。
  • 16020(HBase 2.x)/ 60020(HBase 1.x)

    • 用途:HBase RegionServer 的 RPC 端口(客户端读写数据时与 RegionServer 通信)。
    • 配置:hbase.regionserver.port。
2. Cassandra
  • 9042

    • 用途:Cassandra 的 CQL(Cassandra Query Language)客户端连接端口(如 cqlsh 工具)。
    • 说明:默认端口,可通过cassandra.yaml的native_transport_port修改。
  • 7000

    • 用途:Cassandra 节点间通信端口(集群内节点 gossip 协议通信,数据同步)。
    • 配置:storage_port(非 SSL);ssl_storage_port(SSL 加密,默认 7001)。
  • 7199

    • 用途:Cassandra JMX 监控端口(通过 JMX 工具监控节点状态、 metrics 等)。

五、消息队列

1. Kafka
  • 9092

    • 用途:Kafka Broker 的默认通信端口(客户端生产 / 消费消息时的连接端口)。
    • 配置:server.properties的listeners=PLAINTEXT://:9092(PLAINTEXT 表示非加密)。
  • 9093

    • 用途:Kafka Broker 的 SSL 加密通信端口(生产环境推荐启用,避免数据明文传输)。
    • 配置:listeners=SSL://:9093。
  • 2181

    • 用途:Kafka 依赖 ZooKeeper 的端口(存储 Broker 元数据、分区 Leader 信息等)。
2. RabbitMQ
  • 5672

    • 用途:RabbitMQ 的默认 AMQP 协议客户端连接端口(非加密)。
    • 配置:rabbitmq.conf的listeners.tcp.default = 5672。
  • 5671

    • 用途:AMQP 协议的 SSL 加密端口。
  • 15672

    • 用途:RabbitMQ 的 Web 管理界面端口(通过浏览器访问,默认用户名 / 密码 guest/guest)。

六、搜索引擎与监控

1. Elasticsearch
  • 9200

    • 用途:Elasticsearch 的 HTTP REST API 端口(客户端通过 HTTP 请求操作索引,如创建、查询数据)。
    • 配置:elasticsearch.yml的http.port: 9200。
  • 9300

    • 用途:Elasticsearch 集群内部节点通信端口(TCP 协议,用于节点间数据同步、集群管理)。
    • 配置:transport.port: 9300。
2. Kibana
  • 5601
    • 用途:Kibana 的 Web UI 端口(可视化 Elasticsearch 数据的界面,默认连接本地 9200 端口的 ES)。
    • 配置:kibana.yml的server.port: 5601。
3. Prometheus & Grafana
  • 9090(Prometheus)

    • 用途:Prometheus 的 Web UI 和 HTTP API 端口(用于配置监控目标、查询 metrics)。
  • 3000(Grafana)

    • 用途:Grafana 的 Web UI 端口(可视化 Prometheus 等数据源的监控指标,默认用户名 / 密码 admin/admin)。

七、其他常用组件

  • Redis:6379(默认客户端连接端口)、6380(SSL 端口)。
  • MySQL:3306(默认端口,常用于 Hive、Sqoop 等组件的元数据存储)。
  • Sqoop:无固定端口(依赖 Hadoop、MySQL 等组件的端口)。
  • Flink SQL Client:无固定端口(通过 8081 连接 Flink 集群)。

注意事项

  1. 端口冲突:大数据组件众多,默认端口可能冲突(如 HiveServer2 和 Spark Thrift Server 都可能用 10000),需提前规划修改。
  2. 安全性:生产环境中,非必要的 Web UI 端口应限制访问,核心通信端口建议配置 SSL 加密(如 Kafka 的 9093、Hive 的 10009)。
  3. 版本差异:同一组件的不同版本可能调整端口(如 Hadoop 2.x 与 3.x 的 HDFS 端口),需根据实际版本确认。
  4. 配置文件:所有端口均可通过组件的配置文件修改(如flink-conf.yaml、server.properties),建议统一管理端口映射表。

通过上述端口,大数据组件实现了服务暴露、内部通信和集群管理,是分布式系统正常运行的基础。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐