如何从Spark History Logs提取指定指标?是否有可用API?
Spark History Logs指标提取:API与JSON日志处理方案
对应API方案
Spark History Server提供官方REST API,可直接获取UI展示的所有指标,无需解析原始日志:
- 获取所有应用列表:
GET /api/v1/applications - 获取单个应用的核心指标:
GET /api/v1/applications/{app-id} - 获取应用的阶段级详细数据:
GET /api/v1/applications/{app-id}/stages
这些API返回结构化JSON,可直接提取你需要的数值,比解析本地日志更高效可靠。
本地JSON日志的正确提取方法
你用grep失败是因为Spark事件日志是多行JSON格式,单条事件可能跨多行,文本匹配工具无法正确识别。推荐两种方法:
- 使用
jq工具解析:针对目标事件类型编写过滤命令,比如提取阶段完成事件的持续时间:jq 'select(.Event == "SparkListenerStageCompleted") | .StageInfo.duration' spark-event-log.json - 用Spark的
EventLogFileReader类编写代码:不管是Scala还是Python,都可以通过该工具类加载日志文件,直接提取结构化的事件数据,精准获取UI上展示的指标。
内容的提问来源于stack exchange,提问作者Geoff Langenderfer
相关产品推荐
相关产品推荐

