Apache Spark收集描述意外行为的异常或消息

时间:2016-11-29 09:35:15

标签: scala apache-spark

我正在使用Apache Spark开发应用程序,我需要能够收集自定义异常或消息,然后通过电子邮件发送它们。

目前我正在使用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'")
                    ""
           }
    }
       ...
}

1 个答案:

答案 0 :(得分:0)

决定将LogStash与ElasticSearch和Kibana一起使用。所以我们的日志消息会发布到日志服务器中。 Kibana提供可视化。 ElasticSearch提供全文搜索。