如何在砖上覆盖log4j配置集群

学习如何在砖上覆盖log4j配置集群。

写的亚当Pavlacka

去年发表在:2022年12月8日
删除

警告

本文描述的步骤与客户使用Log4j 1。x在砖集群。Log4j 1。x是不再维护和有三个已知的cf (cve - 2021 - 4104,cve - 2020 - 9488,cve - 2019 - 17571)。如果你的代码使用一个类(JMSAppender或SocketServer)的影响,使用可能影响这些漏洞。你不应该使这些类在集群中的任何一个。

没有覆盖的标准方法log4j配置和自定义配置集群。你必须重写配置文件使用init脚本。

当前配置存储在两个log4j . properties文件:

  • 司机:
    % sh猫/home/ubuntu/databricks/spark/dbconf/log4j/driver/log4j.properties
  • 工人:
    % sh猫/home/ubuntu/databricks/spark/dbconf/log4j/executor/log4j.properties

登录设置职业专用司机或工人,使用下面的脚本:

% sh # !/bin/bash回声”DB_IS_DRIVER美元上执行司机:“如果[[$ DB_IS_DRIVER = " TRUE "]];然后LOG4J_PATH = " / home / ubuntu /砖/火花/ dbconf / log4j /司机/ log4j。其他属性”LOG4J_PATH = " / home / ubuntu /砖/火花/ dbconf / log4j /执行人/ log4j。“fi回声”调整log4j属性。属性:$ {LOG4J_PATH}“回声”log4j。< custom-prop > = <价值> " > > $ {LOG4J_PATH}

取代< custom-prop >属性名,<值>属性值。

上传的脚本DBFS和UI选择集群使用集群配置。

你也可以设置log4j . properties司机以同样的方式。

看到集群节点初始化脚本(AWS|Azure|GCP更多信息)。

这篇文章有用吗?