apache-spark - 将 apache-spark 登录发送到 Amazon EMR 集群上的 redis/logstash 的最佳方式

标签 apache-spark log4j slf4j logback

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question




我在 Amazon EMR 集群上触发提交作业。我希望将所有 Spark 日志记录发送到 redis/logstash。在 EMR 下配置 spark 的正确方法是什么?

  • 保留 log4j:添加引导操作以修改/home/hadoop/spark/conf/log4j.properties 以添加附加程序?然而,这个文件已经包含了很多东西,并且是一个指向 hadoop conf 文件的符号链接(symbolic link)。我不想过多地摆弄它,因为它已经包含一些 rootLoggers。哪个 appender 会做得最好? ryantenney/log4j-redis-appender + logstash/log4j-jsonevent-layout 或 pavlobaron/log4j2redis ?
  • 迁移到 slf4j+logback:从 spark-core 中排除 slf4j-log4j12,添加 log4j-over-slf4j ...并使用带有 com.cwbase.logback.RedisAppender 的 logback.xml?看起来这会对依赖项造成问题。它会隐藏已经在 log4j.properties 中定义的 log4j.rootLoggers 吗?
  • 还有什么我错过的吗?

  • 您对此有何看法?

    更新

    看起来我无法获得第二个工作选择。运行测试很好,但使用 spark-submit(使用 --conf spark.driver.userClassPathFirst=true)总是以可怕的“在类路径上检测到 log4j-over-slf4j.jar 和 slf4j-log4j12.jar ”结束,抢占 StackOverflowError。”

    最佳答案

    我会在集群上为此设置一个额外的守护进程。

    关于apache-spark - 将 apache-spark 登录发送到 Amazon EMR 集群上的 redis/logstash 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31790944/

    相关文章:

    Java 登录到 2 个不同的文件

    java - Junit 测试方法的日志输出是否正确?

    java - 使用 logback 仅存档旧日志

    python - Pyspark java.lang.OutOfMemoryError : Requested array size exceeds VM limit 错误

    apache-spark - 映射 DataFrame 中的单个列的正确方法是什么?

    apache-spark - spark中每个工作节点运行多少个执行程序进程?

    python - 从 Spark DataFrame 选择空数组值

    tomcat - 如何登录jar库的静态 block

    android - 读取通过 slf4android 记录的文件?

    java - 如何使用 log4j 查看 Jersey