當前位置:編程學習大全網 - 編程語言 - spark日誌收集

spark日誌收集

在很多情況下,我們需要查看driver和executors在運行 Spark 應用程序時候產生的日誌,這些日誌對於我們調試和查找問題是很重要的。

Spark 日誌確切的存放路徑和部署模式相關:

(1)、 如果是Spark Standalone模式 ,我們可以直接在Master UI界面查看應用程序的日誌,在默認情況下這些日誌是存儲在worker節點的work目錄下,這個目錄可以通過 SPARK_WORKER_DIR 參數進行配置。

(2)、 如果是Mesos模式 ,我們同樣可以通過Mesos的Master UI界面上看到相關應用程序的日誌,這些日誌是存儲在Mesos slave的work目錄下。

(3)、 如果是YARN模式 ,最簡單地收集日誌的方式是使用YARN的日誌收集工具( yarn logs -applicationId ),這個工具可以收集妳應用程序相關的運行日誌,但是這個工具是有限制的:應用程序必須運行完,因為YARN必須首先聚合這些日誌;而且妳必須開啟日誌聚合功能( yarn.log-aggregation-enable ,在默認情況下,這個參數是false)。

如果妳運行在YARN模式,妳可以在ResourceManager節點的WEB UI頁面選擇相關的應用程序,在頁面點擊表格中 Tracking UI 列的 ApplicationMaster ,這時候妳可以進入到Spark作業監控的WEB UI界面,這個頁面就是妳Spark應用程序的proxy界面,比如 :9981/proxy/application_1430820074800_0322 ,當然妳也可以通過訪問Driver所在節點開啟的4040端口,同樣可以看到這個界面。

到這個界面之後,可以點擊 Executors 菜單,這時候妳可以進入到Spark程序的 Executors 界面,裏面列出所有Executor信息,以表格的形式展示,在表格中有 Logs 這列,裏面就是妳Spark應用程序運行的日誌。如果妳在程序中使用了 println(....) 輸出語句,這些信息會在stdout文件裏面顯示;其余的Spark運行日誌會在stderr文件裏面顯示。

在默認情況下,Spark應用程序的日誌級別是INFO的,我們可以自定義Spark應用程序的日誌輸出級別,可以到 $SPARK_HOME/conf/log4j.properties 文件裏面進行修改,比如:

| 01 | # User: 過往記憶 |

| 02 | # Date: 2015-05-015 |

| 03 | # Time: 上午07:26 |

| 04 | # bolg: [](/) |

| 05 | # 本文地址:[/archives/1353](/archives/1353) |

| 06 | # 過往記憶博客,專註於hadoop、hive、spark、shark、flume的技術博客,大量的幹貨 |

| 07 | # 過往記憶博客微信公***帳號:iteblog_hadoop |

| 08 | spark.root.logger=WARN,console |

| 09 | |

| 10 | log4j.rootLogger=${spark.root.logger} |

| 11 | |

| 12 | log4j.appender.console=org.apache.log4j.ConsoleAppender |

| 13 | log4j.appender.console.target=System.err |

| 14 | log4j.appender.console.layout=org.apache.log4j.PatternLayout |

| 15 | log4j.appender.console.layout.ConversionPattern=%d (%t) [%p - %l] %m%n |

這樣Spark應用程序在運行的時候會打出WARN級別的日誌,然後在提交Spark應用程序的時候使用 --files 參數指定上面的 log4j.properties 文件路徑即可使用這個配置打印應用程序的日誌。

  • 上一篇:幼兒社會教育活動目標設計方案
  • 下一篇:順德有哪些教育集團怎麽樣?
  • copyright 2024編程學習大全網