qubole上的日志记录和调试

igsr9ssn  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(460)

如何登录qubole/访问来自spark on qubole的日志?我的设置:
java库(jar)
zeppelin notebook(scala),只需从库中调用一个方法
Spark,纱团
库中使用的log4j2(配置为登录stdout)
如何从log4j2记录器访问日志?到目前为止我尝试的是:
查看我的口译员的“日志”部分
查看每个执行者的spark ui标准输出日志

p8h8hvxi

p8h8hvxi1#

当spark作业或应用程序失败时,可以使用spark日志来分析失败。
qds ui提供指向应用程序ui和spark应用程序ui中的日志的链接。
如果您是从分析页面运行spark作业或应用程序,则可以通过应用程序ui和spark应用程序ui访问日志。
如果您是从笔记本页面运行spark作业或应用程序,则可以通过spark应用程序ui访问日志。
访问应用程序ui访问spark应用程序ui您还可以添加其他日志,以识别spark作业或应用程序故障中的错误和异常。
访问应用程序ui,从qds ui的分析页通过应用程序ui访问日志:
请注意命令id,它对于qubole作业或命令是唯一的。单击搜索栏右侧的向下箭头。此时将显示search history页面,如下图所示。
../../..\u images/spark-debug1.png在命令id字段中输入命令id,然后单击应用。
任何spark作业的日志都显示在应用程序ui和spark应用程序ui中,可在“日志”和“资源”选项卡中访问。这些ui中的信息可用于跟踪与命令状态相关的任何信息。
下图显示了带有链接的“日志”选项卡的示例。
单击“日志”选项卡或“资源”选项卡中的应用程序ui超链接。
hadoop mr应用程序ui如下图所示。
../../..\u images/application-ui.png hadoop mr应用程序ui显示以下信息:
mr应用程序主日志mapper/reducer任务完成/失败/终止/成功的总任务注解
mr应用程序主日志与spark驱动程序日志相对应。对于任何与spark驱动程序相关的问题,您应该验证am日志(驱动程序日志)。
如果要检查失败作业的异常,可以单击hadoop mr应用程序ui页面中的logs链接。将显示包含stdout、stderr和syslog的应用程序主机(am)日志页面。
访问spark应用程序ui您可以从分析页和笔记本页使用spark应用程序ui访问日志。
从主菜单的“分析”页面,导航到“分析”页面。请注意命令id,它对于qubole作业或命令是唯一的。单击搜索栏右侧的向下箭头。搜索历史页面如下图所示…/../..\u images/spark-debug1.png在“命令id”字段中输入命令id,然后单击“应用”。单击“日志”选项卡或“资源”选项卡。单击spark应用程序ui超链接。从主菜单的“笔记本”页,导航到“笔记本”页。
单击右上角的spark小部件并单击spark ui,如下图所示。
../../..\u图像/spark-ui.png或
点击段落中的i图标,如下图所示。
../../..\u images/spark-debug2.png从笔记本页面的spark小部件或分析页面打开spark ui时,spark应用程序ui将显示在单独的选项卡中,如下图所示。
../../..\u images/spark-application-ui.png spark应用程序ui显示以下信息:
作业:作业选项卡显示已完成、成功和失败作业的总数。它还显示作业成功的阶段数。
阶段:阶段选项卡显示已完成和失败阶段的总数。如果要查看有关失败阶段的更多详细信息,请单击“说明”列中的失败阶段。失败阶段的详细信息如下图所示。
../../..\u images/spark-app-stage.png错误列显示失败任务的详细错误消息。您应该注意executor id和hostname,以便在容器日志中查看详细信息。有关错误堆栈跟踪的更多详细信息,您应该检查容器日志。
存储:如果启用了缓存,则存储选项卡将显示缓存的数据。
环境:environment选项卡显示有关jvm、spark属性、系统属性和类路径条目的信息,这些信息有助于了解spark集群在运行时使用的属性的值。下图显示了“环境”选项卡。
../../..\u images/spark-app-env.png executors:executors选项卡显示容器日志。可以使用executor id和显示在stages选项卡中的主机名Map容器日志。
spark on qubole在executors选项卡中提供了以下附加字段:
resident size/container size:将容器内使用的总物理内存(执行器的java堆+堆外内存)显示为resident size,将配置的容器大小(执行器内存+执行器开销)显示为container size。heap used/committed/max:显示与执行器的java堆相对应的值。下图显示了executors选项卡。
../../..\u images/spark-app-exec.png中的“日志”列显示指向容器日志的链接。此外,还将显示每个执行者执行的任务数以及活动、失败、已完成和总任务数。
笔记
对于调试容器内存问题,可以检查容器大小、使用的堆、输入大小和无序读/写的统计信息。
反馈访问其他spark日志除了从qds ui访问日志外,您还可以访问位于群集上的以下日志,以识别spark作业失败中的错误和异常:
它包含spark事件日志。spark历史服务器日志:spark-yarn-org.apache.spark.deploy.history.historyserver-1-localhost.localdomain.log文件存储在/media/ephemeral0/logs/spark。spark history服务器日志仅存储在集群的主节点上。
spark事件日志:spark事件日志文件存储在/logs/hadoop///spark事件日志中,其中:
scheme是特定于云的uri方案:s3://对于aws;azure的wasb://或adl://或abfs[s];oci://用于oracle oci。defloc是qds帐户的默认存储位置。cluster\u id是在qds ui的clusters页面上显示的集群id。cluster\u inst\u id是群集示例id。您应该联系qubole支持部门以获取群集示例id。

相关问题