用于分发计算任务,celery 和 spark 哪个更好

For distributing calculation task, which is better celery or spark

问题:计算任务很容易并行。但需要实时响应。

可以有两种方法。 1. 使用 Celery:从头开始并行运行作业 2. 使用 Spark:与 spark 框架并行运行作业

我认为 spark 在可扩展性方面更好。但是 Spark 作为 Web 应用程序的后端是否可以?

Celery :- 确实是一种很好的分布式流技术,它支持 Python 语言。其计算能力强且易于编写。 Celery 中的流应用程序也支持如此多的特性。 CPU.

的开销很小

Spark- 它支持多种编程语言Java、Scala、Python。根据 Spark 文档

,它不是纯粹的流式传输它的微批处理流式传输

如果您的任务只能通过流媒体完成,并且您不需要 SQl 之类的功能。那么芹菜将是最好的。但是你需要各种功能以及流式传输,然后 SPark 会更好。在这种情况下,您可以考虑应用程序将在几秒内以多少批次生成数据的场景。

除了上述答案之外,还有其他方面需要确定。

  1. 与现有的大数据堆栈集成(如果有)。
  2. 用于摄取的数据管道
  3. 您提到了 "backend for web application"。我假设它用于读取操作。任何批处理应用程序的响应时间可能并不适合任何 Web 应用程序。

流式处理的选择可以帮助您更快地将数据导入集群。但它不能保证网络应用程序所需的响应时间。您需要查看 HBase 和 Solr(如果您正在搜索)。

Spark 无疑比其他批处理框架更好更快。在流媒体中可能没有其他。正如我上面提到的,您应该考虑做出选择的参数。