Apache Spark和Apache Apex有什么区别?

Geo*_*eRF 16 machine-learning stream-processing apache-spark pyspark apache-apex

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模型吗?

Yog*_*dra 22

  1. Apache Apex是一个处理流数据的引擎.尝试实现相同目标的其他一些是Apache风暴,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/

  • 要回答您的问题,1)是的,Apex会在记录到达时对其进行处理,您无需等待.而Spark在处理它们之前等待一大块记录到达.2)目前Apex没有ML实现3)Apex本地用Java编写,支持Scala (2认同)
  • 我认为你的意思是"从某种意义上说,传入的记录不必等待下一个处理记录." (2认同)