Apache Spark collect描述意外行为的异常或消息
问题描述:
我正在用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'")
""
}
}
...
}
答
决定采用LogStash与ElasticSearch和Kibana代替。所以我们的日志消息被发布到日志服务器中。 Kibana提供可视化。 ElasticSearch提供全文搜索。