2016-11-29 79 views
1

我正在用Apache Spark開發應用程序,我需要能夠收集自定義異常或消息,然後通過電子郵件發送它們。Apache Spark collect描述意外行爲的異常或消息

目前我使用的是CollectionAccumulator[String],但是我必須隱式地或顯式地提供這個累加器或sparkContext。

我非常確定必須有像全局對象持有者那樣的東西,可以這樣使用:GlobalExceptionAccumulator.accumulate(e),或者某人使用了類似的東西或甚至更好的解決方案。也許這個累加器的自定義包裝。

這裏是如何爲現在開發:

implicit val acc = spark.sparkContext.collectionAccumulator[String]("Failed.") 
     ... 
object Mappings { 
     ...  
    def valueOf(name: String)(implicit accumulator: CollectionAccumulator[String]): String = { 
      Try(vals(name)) match { 
       case Success(value) => value 
        case Failure(e) => 
        accumulator.add(s"No value defined for '$name'") 
        "" 
      } 
    } 
     ... 
} 

回答

0

決定採用LogStash與ElasticSearch和Kibana代替。所以我們的日誌消息被髮布到日誌服務器中。 Kibana提供可視化。 ElasticSearch提供全文搜索。