【问题标题】:What is the differences between Apache Spark and Apache Apex?Apache Spark 和 Apache Apex 有什么区别?
【发布时间】:2016-06-05 10:08:21
【问题描述】:

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

问题

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

【问题讨论】:

  • 只是想知道为什么这被否决了!
  • 这里也一样。看到这么多反对票,我很震惊。有人可以澄清吗?这是一个非常具体的相关问题。
  • 非常详细的比较在这里slideshare.net/ApacheApex/…

标签: apache-spark machine-learning pyspark stream-processing apache-apex


【解决方案1】:
  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/

【讨论】:

  • 谢谢!你能解释一下你对微批处理的说法吗?您的意思是在“微批处理”中,只有在下一条记录到达后才会处理传入的记录,就像在 Apex 中一样,记录不必等待任何处理?
  • 从今天开始,在 Apex 上运行可扩展的 ML 不是一种选择,对吧? Apex 是否像 spark 一样原生地用 scala 编写?
  • 要回答您的问题,1) 是的,Apex 会在记录到达时对其进行处理,您无需等待。而 Spark 在处理之前等待大量记录到达。 2) 目前 Apex 没有 ML 实现 3) Apex 是用 Java 原生编写的,支持 Scala
  • @ML_Pro spark.apache.org/docs/latest/streaming-programming-guide.html 对 Spark Streaming 说如下: 在内部,它的工作原理如下。 Spark Streaming 接收实时输入数据流并将数据分成批次,然后由 Spark 引擎处理以批量生成最终结果流。
  • 我认为您的意思是“从某种意义上说,传入记录不必等待下一条记录进行处理。”
猜你喜欢
  • 2016-06-23
  • 2014-06-24
  • 2018-08-14
  • 2015-12-05
  • 2017-10-13
  • 1970-01-01
  • 2012-05-04
  • 2015-08-28
  • 1970-01-01
相关资源
最近更新 更多