java - EMR - 在 Hadoop(和 YARN)中使用自定义日志记录附加程序

标签 java hadoop logging configuration emr

在我们的 EMR 集群中,我们使用自定义 log4j-appenders 和 log4j.properties 来允许我们将日志转发到 Splunk 并让我们做一些提供的库和配置不知道如何做的魔术。

在 EMR 3.x 中,我们使用引导操作来做到这一点:

  1. 从 s3 下载我们的自定义 log4j appender jar,log4j.properties, 我们自定义的 container-log4j.properties。
  2. 将我们自定义的 log4j appender jar 放入 yarn lib 目录中 /home/hadoop/share/hadoop/yarn/lib/.
  3. 更新 Hadoop 类路径以使用我们的自定义 log4j 附加器
  4. 将我们修改后的 container-log4j.properties 推送到 hadoop-yarn-server-nodemanager.jar 位于 /home/hadoop/share/hadoop/yarn/

所有这些都有效,并允许我们在整个 Hadoop 进程中使用我们的 appender。

我们尝试升级到 EMR 版本 v4,但我们注意到有一个重大变化,即在没有安装 hadoop-yarn 时正在执行引导操作(路径/usr/lib/hadoop-yarn/没有安装存在),因此没有 hadoop-yarn-server-nodemanager.jar 需要修改,因为它还没有安装 (我们使用以下命令修改 jar:jar uf/usr/lib/hadoop-yarn/hadoop-yarn-server-nodemanager.jar container-log4j.properties )而不是我们可以放置自定义 log4j-appender 的 lib 文件夹。

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

最佳答案

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

如果您使用的是 UI,请填写配置,如果您使用的是 CLI,请使用 --configurations file://./configurations.json

关于java - EMR - 在 Hadoop(和 YARN)中使用自定义日志记录附加程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34061287/

相关文章:

hadoop - 如何在HA模式下配置HBase?

java - 如何根据保存在数据库android中的日期和时间设置闹钟

java - EhCache - servlet 缓存

java - Play 的通用包装方法!楷模

java.lang.NoClassDefFoundError : com/google/common when trying to create a Configuration object

Hadoop 映射器发出一个唯一的键。我可以在每个 map 之后执行 reducer 吗?

java - 如何使用 log4j.xml 为日志文件创建文件夹

c++ - 什么文件格式适合记录/配置文件?

json - 如何将 slf4j-over-logback 日志写为 JSON

java - Android:在不损失质量的情况下调整位图大小