spark历史服务器
spark历史服务器:追踪任务全生命周期
Spark 跑任务的时候,4040 端口能看到执行详情——DAG、Stage、Task、Shuffle 数据量。
但任务一结束,4040 就关了。你还没来得及看,窗口没了。
历史服务器解决的就是这个问题:把任务日志持久化存下来,跑完也能看。
- 应用跑的时候 → 把事件日志写到指定目录(HDFS 或本地)
- 应用跑完之后 → 历史服务器从那个目录读日志,生成 Web UI
- 你在 18080 端口能看到所有历史任务
配置分两步:应用写日志 + 服务读日志
这两步必须配同一个目录——应用往那里写,历史服务器从那里读。
Spark 应用 → 写日志到 /spark-history → 历史服务器 → 从 /spark-history 读 → 展示在 18080
第一步:让 Spark 应用写日志(spark-defaults.conf)
cd $SPARK_HOME/conf
cp spark-defaults.conf.template spark-defaults.conf
在文件里加两行:
spark.eventLog.enabled true
spark.eventLog.dir hdfs://localhost:9000/spark-history
| 参数 | 说明 |
|---|---|
spark.eventLog.enabled |
开日志收集,默认是关的 |
spark.eventLog.dir |
日志写到哪(HDFS 或本地路径) |
路径支持两种:
# HDFS 路径(生产推荐,分布式存储)
spark.eventLog.dir hdfs://localhost:9000/spark-history
# 本地路径(单机测试用)
spark.eventLog.dir file:///usr/local/spark/logs/history
提前创建目录并给权限:
HDFS
hadoop fs -mkdir -p /spark-history
hadoop fs -chmod 777 /spark-history
本地
mkdir -p /usr/local/spark/logs/history
chmod 777 /usr/local/spark/logs/history
