2015-06-26 98 views
1

我的團隊正在Amazon EC2實例上部署新羣集。 經過一番研究,我們決定與Apache Mesos一起作爲集羣管理器和Spark進行計算。從Mesos羣集收集日誌

我們問自己的第一個問題是從每個不同框架的所有機器收集日誌的最佳方法。 到目前爲止,我們開發了一些自定義的bash/python腳本,它們從預定義的位置收集日誌,壓縮它們並將壓縮文件發送到S3。 這種旋轉是由每小時運行一次的cron作業激活的。

我一直在尋找「最好」(或標準)的方式來做到這一點。 我發現Apache Flume,它也是一個數據收集器日誌,但我不明白它怎麼可能被集成到一個Mesos集羣來收集日誌(和Spark)。

我發現this「類似」的問題,但解決方案不是開源或不再支持。

有沒有更好的方法來旋轉日誌或我失蹤的標準方式?

非常感謝你

+0

你看過logstash(與Elasticsearch和Kibana結合)嗎? https://www.elastic.co/products/logstash它是開源的(apache 2)並且受到支持。 –

+0

logstash是一個非常不錯的解決方案,但在架構中添加Elasticsearch和Kibana會給系統增加更多的複雜性(我們試圖儘可能簡化) – besil

回答

0

有沒有完美的答案。如果您使用的是Spark並且有興趣使用Flume,則您必須寫一個自定義的Flume - > Spark接口,因爲據我所知,接口不存在。但是,您可以做的是:

  1. 使用Flume實時提取日誌數據。
  2. 讓Flume使用自定義攔截器對日誌數據進行預處理。
  3. 讓Flume在完成預處理後寫入Kafka。
  4. 讓Spark流讀取Kafka隊列以處理日誌並運行計算。

Spark Streaming據說不能達到黃金時間的生產等級,但這是一個潛在的解決方案。

+0

感謝您的回答。正如您所指出的那樣,爲了收集Spark日誌,需要編寫一個定製的Spark-Flume接口。但是,對於使用Flume TO apache Spark進行日誌記錄,我發現[this](https://spark.apache.org/docs/latest/streaming-flume-integration.html)集成指南 – besil