我正在使用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'")
""
}
}
...
}
答案 0 :(得分:0)
决定将LogStash与ElasticSearch和Kibana一起使用。所以我们的日志消息会发布到日志服务器中。 Kibana提供可视化。 ElasticSearch提供全文搜索。