Spark 历史服务口
Spark 作业历史服务默认端口:已完成应用的任务时序、阶段划分、Shuffle 读写与数据倾斜情况都在 18080 上回放,是离线作业调优的主要依据。它读取事件日志目录,因此历史记录能看到多久取决于日志保留与清理策略。
基本信息
| 服务 | Spark History Server |
|---|---|
| 协议 | TCP/HTTP |
| 默认端口 | 18080 |
| 数据源 | spark.history.fs.logDirectory 下的事件日志 |
| 暴露面 | 仅大数据网段 |
典型使用场景
- 回放已完成作业,定位慢阶段与倾斜 key
- 对比两次运行的阶段耗时,验证调优效果
- 查看 Shuffle 读写量与溢写情况
- 排查作业失败原因与重试次数
- 为资源规格调整提供数据依据
启动与核对
启动与核对
/opt/spark/sbin/start-history-server.sh
curl -sI http://spark-hs01:18080/ | head -3
# 配置: spark.history.fs.logDirectory=hdfs:///spark/events
# 清理: spark.history.fs.cleaner.enabled 与保留周期
ss -lntp | grep 18080排障与核对
| 检查项 | 做法 | 异常表现 |
|---|---|---|
| 服务可达 | curl -sI http://host:18080/ | 无响应:服务未起或端口被占用 |
| 应用列表 | 界面中的已完成应用 | 应用缺失:事件日志未开启或被提前清理 |
| 阶段耗时 | 作业页面的阶段视图 | 某阶段明显偏长:多为数据倾斜或溢写 |
| 日志目录 | 事件日志目录的大小 | 增长异常:清理策略未开或保留周期过长 |
事件日志是历史服务的数据源:作业跑完但界面看不到,先确认应用是否开启事件日志、目录配置是否一致、清理策略是否把日志删早了——这三条覆盖绝大多数情况。
历史服务的边界
它只负责回放已完成作业,不参与运行中作业的调度;正在跑的作业要看资源管理器或调度平台的界面。运行中的应用界面与历史界面是两个入口,概念不同,排查时别混用。
历史服务通常独立部署在管理节点,网络策略只需放通运维网段访问 18080;界面里展示的表名与数据路径属于内部信息,不建议对外暴露。
事件日志目录不做清理:界面越跑越慢,最终磁盘先被日志撑满,连带影响同一文件系统上的其他服务。