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

EMR-在Hadoop(和YARN)中使用自定义日志附加器

宫子晋
2023-03-14

在我们的EMR集群中,我们使用定制的log4j附加器和log4j。属性来允许我们将日志转发到Splunk,并让我们实现一些所提供的库和配置不知道如何实现的魔法。

在EMR 3.x中,我们使用引导操作完成了:

  1. 从s3下载我们的定制log4j appender jar,log4j。属性,容器-log4j。我们定制的属性
  2. 将我们的定制log4j appender jar放入位于/home/hadoop/share/hadoop/yarn/lib/的yarn-lib目录中
  3. 更新Hadoop类路径以使用我们的定制log4j appender
  4. 推动我们改进的容器log4j。属性转换为hadoop yarn服务器节点管理器。jar at/home/hadoop/share/hadoop/yarn/

所有这些都起到了作用,并允许我们在Hadoop进程中使用appender。

我们试图升级到EMR版本4,但我们注意到有一个重大变化,即在没有安装hadoop yarn的情况下执行引导操作(路径/usr/lib/hadoop yarn/不存在),因此没有hadoop yarn服务器节点管理器。jar进行修改,因为它尚未安装(我们使用命令jar uf/usr/lib/hadoop-yarn/hadoop-yarn-server-nodemanager.jar container-log4j.properties修改jar),而不是lib文件夹,我们可以在其中放置自定义的log4j appender。

我们如何在EMR 4. x中进行这些更改以允许我们的自定义日志记录?

共有1个答案

傅泉
2023-03-14

您可以按照本页的说明覆盖log4j和container-log4j设置。http://docs.aws.amazon.com//ElasticMapReduce/latest/ReleaseGuide/emr-4.7.2/emr-configure-apps.html

如果您使用的是用户界面,请填写配置,如果您使用的是CLI,请使用—配置文件://。/configurations.json

 类似资料:
  • TL;dr:文档没有提到如何做到这一点,似乎也没有支持这一点的配置值(参见所有配置选项)。有没有一种定制日志附加器的方法? 对于测试应用程序,我喜欢评估日志消息。为此,您需要实现自己的日志附加器,将日志消息存储在某些数据结构中,然后配置您的日志后端,如果应用程序在测试上下文中运行,则额外使用此附加器。对于Logback,它只是一个 创建一个定制的日志附加器,但是不得不发现这也需要添加依赖项< co

  • 我有一个要求,其中写入日志文件的日志条目需要具有特定格式。 例如: 2016-01-28 21:42:48,399 INFO field d1: value e1;字段2: value e2;字段3: value e3;字段4: value e4 我们正在使用日志返回进行日志记录。字段的值存储在 java 对象中。有关如何使用自定义附加器/布局或任何其他方法实现这一点的任何建议或指针都将有很大的帮

  • 我正在测试使用PostSharp记录我的方法(log4net)的进入和退出。我遇到的问题是我希望日志消息是一个json对象,而不是您默认获得的内容,即: 输入:MyClass。MyMethod(参数) 我想要一些东西,比如{“动作”:“进入”,“类”:“我的类”,“方法”:“我的方法”等} 这是因为我使用loggly来解释日志,而使用json日志消息可以更好地进行过滤、搜索等。 这有可能吗?

  • 请帮助我plz为Apache日志添加一个自定义部分,我希望在Apache access中获得以下代码片段的结果。日志,不仅在UI上: 现在我有以下的外出日志 (IP)-[24/Apr/2016:16:55:31 0000]“GET/tt.php?cmd=ls HTTP/1.1“200 331”-“Mozilla/5.0(Macintosh;英特尔Mac OS X 10_10_5)AppleWebK

  • 我的数据库中没有插入任何内容。所以我的第一个问题是为什么它不工作,请给我任何解决办法,如果可能的话。 另一个问题是,我将的intLevel调整为10,如下所示: 而现在它正在插入数据库,但也抛出了一些错误。 如有任何帮助,我们将不胜感激,并提前向您表示感谢。