【发布时间】:2015-12-27 09:14:04
【问题描述】:
我们正在开发一种大数据解决方案,其中一个要求是处理传入的电子邮件。技术堆栈尚未最终确定,但大多数情况下,我们可能会使用 Sendmail 作为 MTA,Procmail 作为 MDA。我们对任何其他非常有效的解决方案持开放态度。
这些电子邮件本质上是在附件中携带数据,并不适用于最终用户,因此电子邮件流以 Spark 处理结束。
我的第一个想法是,如果有一个消息队列系统(例如 Apache-Kafka)可以接受电子邮件作为消息,然后按需将它们提供给客户端(例如 Spark),那就太好了,但似乎是那种技术/方法在任何消息代理系统中均不可用。
这意味着我们必须通过 SMTP MTA 接收电子邮件,然后从 MDA 中提取信息。
我们可以使用 Procmail 提取电子邮件和附件的内容,并将它们放在每个电子邮件的文件夹中,然后扫描文件夹并在 spark 中处理它们。
或者,如果 Spark 有任何插件可以从 MDA 中提取电子邮件并将其分解为附件,这将使生活变得更加简单。
如果有任何其他更智能的解决方案,我们将不胜感激。
因此,根本问题是有哪些技术可用于通过 Spark 对电子邮件进行通道化处理。连接器等
【问题讨论】:
-
“Sendmail”,在这个时代;严重地?大多数没有旧版 Sendmail 的商店会更喜欢另一个 MTA。 Postfix 作为替代品非常受欢迎。
-
您的问题是什么?我们不会为您实施此系统。
-
@tripleee,我已经更新了这个问题,但基本上我需要知道是否有任何连接器可以将电子邮件吸入 Spark 以进行分布式大规模处理。如果是,它们是什么,如果不是,那么讨论最佳行动方案。
-
电子邮件本身是一个“消息队列系统”。您可以轻松地挑选出一条 MIME 消息,例如
munpack;另见superuser.com/questions/406125/… -
@tripleee,我已经看到了这些,但它们就像第二/第三最佳选择,因为它涉及多个处理步骤。理想情况下,它应该像一个服务器,持久保存到 Spark 可读的某个存储或将其传递给 Spark 流。
标签: apache-spark message-queue apache-kafka spark-streaming procmail