• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wudc
V2EX  ›  程序员

提交到 yarn 上的 spark 程序中的 log4j 信息怎么保存到 hdfs 某个目录?

  •  
  •   wudc · Dec 29, 2017 · 4076 views
    This topic created in 3067 days ago, the information mentioned may be changed or developed.
    写好了一个 spark job,用 crontab 定时跑,但是 spark 的 console 输出信息无法保存,后来在程序中用 log4j 打印日志,但是在集群中运行的程序 日志存放位置不太好整,就想着要不就存放到 hdfs,但是没有查到这方面的实现方法,在这里请各位帮忙指点。谢谢。
    3 replies    2017-12-31 22:43:13 +08:00
    billlee
        1
    billlee  
       Dec 29, 2017
    history server
    kex0916
        2
    kex0916  
       Dec 29, 2017
    spark 的日志可以分为 driver 端和 executor 端的日志,你说的 spark 的 console 输出应该主要指的是 yarn client 模式吧
    executor 端日志由于你本身是在 yarn 上执行的,可以配置 yarn.log-aggregation-enable=true 来开启日志聚合,这个功能会把 container 的日志收集到 hdfs 上,开启后可以通过 yarn logs -applicationId 命令来获取 yarn 应用的日志,也就能得到 spark on yarn 应用的 executor 端日志
    driver 端日志(这里主要是 yarn client 模式)可以定制 HdfsAppender 在 log4j 里配置该 appender 可以保存到 hdfs。
    另外可以配置 history server 里面可以看到已经执行应用的信息
    更专业点可以考虑用 flume 来收集日志
    wudc
        3
    wudc  
    OP
       Dec 31, 2017
    @kex0916 是我之前了解不深,听你这么说又去查了下,终于明白了,提交的时候 master 设置为 yarn-client 就可以了,谢谢。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   958 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 23:01 · PVG 07:01 · LAX 16:01 · JFK 19:01
    ♥ Do have faith in what you're doing.