【问题标题】:Apache Spark for business process?用于业务流程的 Apache Spark?
【发布时间】:2018-12-14 00:32:20
【问题描述】:

我了解 Spark/Hadoop 的大数据功能,但我被要求将它们用于一组似乎并不真正适合其中的流程,我需要进行健全性检查。

这些流程在较高级别上是并行的,但包含固有的顺序独​​立子流程,无法并行化。这方面的一个例子是启动的 X 个并行顶级进程。每个都使用不同的配置来运行一组有些独立的子流程:

  • 下载一组 XML(顺序)
  • 验证每个 XML(按顺序)
  • 轻松处理每个 XML(按顺序)
  • 加载到数据存储中(按顺序)

处理包含一些转换,但在大数据方面并不多。该处理是可能受益的一个步骤,但它仍然必须针对一个流程按顺序完成。

对我来说,这似乎不是大数据。事实上,这似乎是对该平台的完全误用。在这种情况下,唯一的好处可能是为了支持目的而整合多个平台,但总的来说,spark/hadoop 生态系统不会为这种业务流程提供任何好处,对吧?

还是我疯了?

【问题讨论】:

  • 我个人会为此尝试 Apache NiFi 而不是编写 Spark 代码
  • 是的,我看过 NiFi,并且仍在调查它。我正在寻找的真正东西是强大的 API 和 SDK。我们不能出售其他工具的 UI,因为它不会是客户的需求。所以充其量我们会构建自己的 UI 并使用底层平台作为引擎。因此,任何强调其自身 UI 的工具都无法运行。我还没有确定 Nifi 是否符合要求。
  • NiFi 有一个 REST API 来创建处理器和组 - nifi.apache.org/docs/nifi-docs/rest-api/index.html

标签: apache-spark hadoop bigdata


【解决方案1】:

在我看来,您的问题实际上取决于:

  1. 数据规模
  2. 如果你真的不能并行(加载和验证 xml 听起来像是并行的,但你比我更清楚
  3. 如果所有过程都需要每次执行,或者部分过程需要一次执行。

我的意思是:如果流程的很大一部分是连续的(并且需要为每个 spark 作业运行而不是一次)并且瓶颈就在那里,那么听起来你是正确的并且启动时间 + 复杂性Spark 是不使用它的好理由。 但是,如果您被要求使用 Spark,那可能是有充分理由的。

【讨论】:

  • 规模不是大数据大,而是大。其顺序的原因是一个记录的处理取决于一些先前记录的值。理论上它可以并行存储,但是仍然会有一个后处理来执行这些计算,这意味着另一个平台或一组逻辑。
  • 好的,现在主要问题是,是否需要为每个 Spark 作业运行顺序过程,或者是否需要运行一次并且对其进行处理将执行多次。你认为这个过程在没有火花的情况下需要多长时间?如果它少于 30 分钟,那么真的没有理由这样做。归根结底,在工作环境中,如果您需要做某事,您总是可以双向进行,并证明您的方式要好得多。
  • 顺序过程需要跨整个数据集运行。例如。它是一组增量 XML 文件。处理逻辑需要在处理文件 X+1 之前处理文件 X。
  • 再考虑之后,我也许可以将数据流式传输到大数据暂存区处理它。然后在该区域运行后处理,将数据转换并移动到发布层。后处理仍然必须是顺序的,但是流处理可以按照数据到达的任何顺序进行。对于一些消费者来说,暂存区仍然具有关联性和可操作性,只是没有针对要求更高的消费者进行改造。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-21
相关资源
最近更新 更多