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

在dataproc上,调整Spark日志级别的最优雅、最健壮的方法是什么?

樊奇思
2023-03-14

正如前面的回答中所解释的,更改Spark cluster详细信息的理想方法是更改相应的log4j。财产。但是,在dataproc上,Spark在Thread上运行,因此我们必须调整全局配置,而不是/usr/lib/Spark/conf

若干建议:

在dataproc上,我们有几个gcloud命令和属性可以在集群创建期间传递。如有可能更改log4j,请参阅文档。在/etc/hadoop/conf下指定

--properties 'log4j:hadoop.root.logger=WARN,console'

也许不是,从文档中可以看出:

--properties命令无法修改上面未显示的配置文件。

另一种方法是在集群初始化期间使用shell脚本并运行sed:

# change log level for each node to WARN
sudo sed -i -- 's/log4j.rootCategory=INFO, console/log4j.rootCategory=WARN, console/g'\
                     /etc/spark/conf/log4j.properties
sudo sed -i -- 's/hadoop.root.logger=INFO,console/hadoop.root.logger=WARN,console/g'\
                    /etc/hadoop/conf/log4j.properties

但是这足够了吗?或者我们需要更改环境变量hadoop吗。根你也是吗?

共有2个答案

吕宣
2023-03-14

最近,通过--properties标签添加了对log4j属性的支持。例如:您现在可以使用“-properties'hadoop-log4j:hadoop.root.logger=WARN,console'”。请参阅本页(https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/cluster-properties)欲知详情

陈马鲁
2023-03-14

目前,您是对的,--properties不支持额外的log4j设置,但这肯定是我们讨论过的添加内容;一些注意事项包括,与保持最小/简单的设置(以共享的方式对所有内容进行检查)相比,如何平衡对Spark、Thread和其他长时间运行的守护程序的日志配置(hiveserver2、HDFS守护程序等)进行细粒度控制的能力。

至少对于Spark驱动程序日志,您可以使用--drier-log-level设置作业提交时间,该时间应优先于任何/etc/*/conf设置,但如您所述,初始化操作是合理的在群集启动时编辑文件的方法,请记住它们可能会随着时间的推移和发布而改变。

 类似资料:
  • 问题内容: 最近,我开始开发linux设备驱动程序, 当我想使用内核代码进行调试并在内核文件中添加一些调试消息时,我遇到了一个问题。 例如,最近我加入一些和在驻留在。 然后,我执行以下步骤,这非常耗时。 然后重启并选择我的新内核版本。 我不知道有没有多余的步骤?任何指导或帮助将不胜感激。 问题答案: 这是我有关如何构建和运行定制内核的说明。 获取资源 Linus Torvalds的树是[1]。 在

  • 问题内容: 到目前为止,这是我得到的: 这让我既震惊又浪费。如果存在firstChoice,则我将不必要地计算secondChoice。 还有一个更有效的版本: 在这里,如果不复制映射器或声明另一个局部变量,就无法将某些映射函数链接到最后。所有这些使代码比要解决的实际问题更加复杂。 我宁愿这样写: 但是可选:::显然不存在。怎么办? 问题答案: 试试这个: map方法为您提供了一个。然后,该方法将

  • 到目前为止我得到的是: 这让我觉得既可怕又浪费。如果第一个选择存在,我就不必要地计算第二个选择。 还有一个更有效的版本: 在这里,如果不复制映射器或声明另一个局部变量,我就无法将某个映射函数链接到最后。所有这些都使得代码比正在解决的实际问题更加复杂。 我宁愿这样写: 然而,可选的::可选的显然不存在。现在怎么办?

  • 问题内容: 连接字符串上的用户标识不是变量,并且与程序的用户标识(例如,可以是GUID)不同。如果您的连接字符串的用户ID是静态的,您如何审核日志删除? 记录插入/更新/删除的最佳位置是通过触发器。但是使用静态连接字符串,很难记录谁删除了某些内容。有什么选择? 问题答案: 使用SQL Server,您可以使用CONTEXT_INFO将信息传递给触发器。 我在必须使用触发器(例如,表上的多个写入路径

  • 问题内容: 假设您有一个存储有序树层次结构的平面表: 这是一个图,我们在这里。根节点0是虚构的。 您将使用哪种简约方法将其作为正确排序,正确缩进的树输出到HTML(就此而言,还是文本)? 进一步假设您只有基本的数据结构(数组和哈希图),没有带有父/子引用的奇特对象,没有ORM,没有框架,只有两只手。该表表示为结果集,可以随机访问。 可以使用伪代码或简单的英语,这纯粹是一个概念性问题。 额外的问题:

  • 我有log4j2.xml,它部分配置为: 但是,跟踪消息并不存在于两个文件附加符(fileinfo/filedebug)中。当我更改FileDebug log level=“TRACE”时,就会出现跟踪消息。