16

Apache Apex - 是一个开源企业级统一流和批处理平台。它用于物联网的 GE Predix 平台。这两个平台之间的主要区别是什么?

问题

  1. 从数据科学的角度来看,它与 Spark 有何不同?
  2. Apache Apex 是否提供 Spark MLlib 之类的功能?如果我们必须在 Apache apex 上构建可扩展的 ML 模型,该怎么做以及使用哪种语言?
  3. 数据科学家是否必须学习 Java 才能构建可扩展的 ML 模型?它有像pyspark这样的python API吗?
  4. Apache Apex 可以与 Spark 集成吗?我们可以在 Apex 之上使用 Spark MLlib 来构建 ML 模型吗?
4

1 回答 1

23
  1. Apache Apex 用于处理流数据的引擎。其他一些尝试实现相同目标的有 Apache Storm、Apache flink。Apache Apex 的不同之处在于:它内置了对容错、可扩展性和对可操作性的支持,这些都是生产用例中的关键考虑因素。

与 Spark 比较:Apache Spark 实际上是一个批处理。如果您考虑 Spark 流式处理(在下面使用 spark),那么它就是微批处理。相比之下,Apache apex 是真正的流处理。从某种意义上说,传入记录不必等待下一条记录进行处理。记录一到达就被处理并发送到下一级处理。

  1. 目前,正在为 Apache Apex 与 Apache Samoa、H2O 等机器学习库的集成添加支持的工作正在进行中,请参阅https://issues.apache.org/jira/browse/SAMOA-49

  2. 目前,它已支持 Java、Scala。
    https://www.datatorrent.com/blog/blog-writing-apache-apex-application-in-scala/ 对于 Python,您可以使用 Jython 进行尝试。但是,我自己没有试过。所以,不是很确定。

  3. 考虑到它们是两个不同的处理引擎,与 Spark 集成可能不是一个好主意。但是,Apache apex 与机器学习库的集成正在进行中。

如果您有任何其他问题,您可以在 apache apex 用户的邮件列表中发布功能请求:https ://mail-archives.apache.org/mod_mbox/incubator-apex-users/

于 2016-02-24T06:35:41.277 回答