本文为您介绍如何通过阿里云日志服务收集Spark作业的日志。
前提条件
已在E-MapReduce on ACK控制台创建Spark集群,详情请参见快速使用EMR on ACK。
已开通阿里云日志服务SLS,详情请参见快速入门。
操作步骤
启用日志服务组件Logtail,详情请参见步骤一:安装Logtail组件。
说明如果已启用日志服务组件Logtail,则直接执行步骤2。
进入日志服务对应Project的控制台。
登录容器服务管理控制台。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在基本信息页面的集群资源区域,单击日志服务 Project所在行的链接。
进入日志服务对应Project的控制台。
在日志库页签中,新建两个Logstore。
本文示例新建的两个Logstore分别命名为spark-driver-log和spark-executor-log。创建Logstore详情,请参见1. 创建Project和Logstore。
在spark-driver-log的Logstore中,执行以下操作。
新增Logtail配置,接入数据选择Kubernetes标准输出,在配置流程中选择已有的Kubernetes机器组。
选择 下已有的Kubernetes机器组。
在插件配置文本框内,输入以下内容。
{ "inputs": [ { "detail": { "IncludeEnv": { "SPARKLOGENV": "spark-driver" }, "Stderr": true, "Stdout": true, "BeginLineCheckLength": 10, "BeginLineRegex": "\\d+/\\d+/\\d+.*" }, "type": "service_docker_stdout" } ] }
在spark-executor-log的Logstore中,参照步骤4在插件配置文本框中,输入以下内容。
{ "inputs": [ { "detail": { "IncludeEnv": { "SPARKLOGENV": "spark-executor" }, "Stderr": true, "Stdout": true, "BeginLineCheckLength": 10, "BeginLineRegex": "\\d+/\\d+/\\d+.*" }, "type": "service_docker_stdout" } ] }
开启日志库Logstore索引,详情请参见创建索引。
完成以上步骤,即可在SLS上查询到作业的日志了。