当前位置: 首页 > 知识库问答 >
问题:

Apache spark作业日志[重复]

卢阳泽
2023-03-14

我们有多个Apache Spark作业,为了调试和排除故障,我们需要记录任务执行的一些事件和参数。
在Apache Spark工作代码中进行日志记录的做法是什么?
显而易见的解决方案是:使用Spark的loginfo(和其他方法,但不推荐使用)、一些日志记录框架(如log4s)或简单的println。
在我的Java开发人员背景下,我觉得直接将日志写入控制台是一种不好的做法。我们总是为它使用日志框架。
但是如果我们为spark作业选择println logging,我们就可以简单地将日志收集到文件中,例如从启动的shell脚本重定向到文件。此外,我们可以在spark管理控制台中看到输出。

所以我不知道我们使用Log4S获得的利润。您能分享一下在spark Job中使用println进行日志记录的利弊吗?

共有1个答案

苏边浩
2023-03-14

Spark使用log4j作为自己日志记录的标准库。Spark内部发生的一切都会记录到shell控制台和配置的底层存储中。Spark还为应用程序编写者提供了一个模板,因此我们可以使用samelog4j库向Spark中现有的日志实现添加我们想要的任何消息。

请看一下这个。

对于使用或不使用println进行登录,根据我个人的经验,我会说不,请参考这个链接。

 类似资料:
  • 在我的应用程序中,石英作业是在应用程序部署后立即安排的。我有两个日志文件和,都用于特定的日志记录。搜索日志文件只是记录访问者的IP,其余所有日志记录(异常、调试信息)都记录在应用程序日志文件中。 我面临的问题是,默认的Quartz语句正在登录到文件中,这不是必需的。 如何禁用该日志记录?将级别设置为OFF不起作用。我也遵循了禁用石英日志记录,但这也没有帮助。 下面是我的log4j.properti

  • 我设置了一个cron任务来调用这个漂亮的脚本。在groovy脚本中,我使用“ch.qos.logback”来记录日志。 如果我手动运行脚本,日志工作正常,但是当通过cron作业运行时,没有输出到日志文件。 有人见过类似的问题吗?谢谢你!

  • 我在kubernetes中运行cron作业,作业成功完成,我将输出记录到日志文件中(路径:存储/日志),但由于容器已完成,我无法访问该文件。 是否有无论如何我可以让我的日志文件内容显示在kubectl日志命令或其他替代?

  • 操作日志用于显示系统中所有操作信息。 操作日志记录系统中所有操作信息,即记录发起人对某类型的某资源进行的操作以及操作的执行状态等。便于审计用户操作以及出现异常操作后快速定位问题原因等。在项目视图下只显示所属项目为指定项目的日志信息。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “认证与安全/日志审计/操作日志” 菜单项,进入操作日志页面。 查看操作日志 该功能用于查看操作日志详情

  • 有一个只有一个依赖项的spring boot应用程序spring boot starter web,并希望看到我添加到日志中的tomcat日志。属性 然后用Djava开始我的罐子。util。登录中。配置。file=PATH\u TO\u LOGGING\u属性和所有tomcat日志都是重复的 组织。阿帕奇。郊狼。AbstractProtocol init初始化ProtocolHandler[“ht

  • 为了检测cron作业中可能发生的故障,我设置了另一个cron作业来检查crontab发出的上一个日志: 手动运行时,一切正常: 剧本是这样写的 Crontab: 但当使用crontab运行时,日志读取为空。我错过了什么?