一、问题描述
在执行Spark独立应用程序时,命令执行过程会产生很多其他信息,执行结果与其他信息混合在一起显示,如下所示:
二、解决办法
为了直接看到程序运行结果,避免其他多余信息的干扰,可以修改log4j的日志信息显示级别:
bash
cd /usr/local/spark/conf
sudo cp log4j.properties.template log4j.properties
vim log4j.properties
使用vim编辑器打开log4j.properties文件后,把其中的如下信息:
bash
log4j.rootCategory=INFO, console
修改为:
bash
log4j.rootCategory=ERROR, console
保存并退出vim编辑器,再次执行程序即可看到不会显示执行过程中的INFO级别的信息,只会包含程序自己的控制台输出信息。
修改过后再次执行:
在终端执行:
在pycharm执行:
三、问题分析
在 log4j.properties
文件中,可以将 log4j.rootCategory
的值修改为以下任何一种日志级别(从低到高排序):
- ALL: 打开所有日志级别
- DEBUG: 调试信息,最详细的日志级别
- INFO: 提示性消息,常用于表明应用程序运行正常
- WARN: 警告信息,表明可能出现问题
- ERROR: 错误信息,指出发生了错误但程序仍能继续运行
- FATAL: 严重错误信息,表明发生了严重错误导致程序无法继续运行
- OFF: 关闭所有日志级别
例如,如果你想将日志级别设置为 WARN
,则可以将 log4j.rootCategory
修改为 log4j.rootCategory=WARN, console
。
当修改 log4j.rootCategory
为 log4j.rootCategory=ERROR, console
时,表示只输出 ERROR 级别及以上的日志信息到控制台,其他低于 ERROR 级别的日志信息将不会在控制台显示。
在 log4j.properties 文件中,console 表示将日志输出到控制台(Console)。当你设置日志级别并指定 console 后,程序运行时符合指定级别的日志信息将会输出到控制台上,供用户实时查看。
控制台是一个文本界面,通常用于显示程序的输出,包括日志信息、错误信息等。通过将日志信息输出到控制台,用户可以实时查看程序的运行状态和可能出现的问题,有助于进行调试和监控。