spark流而不是JavaRESTAPI

spark流而不是JavaRESTAPI,rest,apache-spark,redis,jax-rs,spark-streaming,Rest,Apache Spark,Redis,Jax Rs,Spark Streaming,我们有一个从rest端点接收数据的现有应用程序。 执行一些过滤和操作,并将其存储到redis(内存中的数据库)。 发送方是接收器(这里的接收器是从蓝牙信标接收数据并将数据发送到其余端点的设备),有效负载不大,但频率很高(每秒数万次)。这有时会阻塞应用程序 由于spark被认为是流处理的一个很好的候选者,我们的计划是保持端点不变(因为更改端点需要在所有地理位置的所有接收者中手动更改),并在rest应用程序中以某种方式使用spark以高效的方式处理和插入数据 Spark小批量作业将是一个问题,因为我

我们有一个从rest端点接收数据的现有应用程序。 执行一些过滤和操作,并将其存储到redis(内存中的数据库)。 发送方是接收器(这里的接收器是从蓝牙信标接收数据并将数据发送到其余端点的设备),有效负载不大,但频率很高(每秒数万次)。这有时会阻塞应用程序

由于spark被认为是流处理的一个很好的候选者,我们的计划是保持端点不变(因为更改端点需要在所有地理位置的所有接收者中手动更改),并在rest应用程序中以某种方式使用spark以高效的方式处理和插入数据

Spark小批量作业将是一个问题,因为我们必须在短时间内以某种方式将数据存储在应用程序中,为此我们必须实现一些Q,从而增加复杂性


任何人都能提供一些见解。

这种情况很常见,我有一些建议给你

建议:

  • 火花流
  • 卡夫卡
在堆栈上方:

  • 您的端点未更改。使用新的实现而不是流程数据,您的端点将向Kafka主题发布数据
  • Spark Streaming将订阅卡夫卡主题、过滤和操作,并将其存储到Redis

目前还不可能,您需要一个队列或某种类型的缓冲区来处理微批次,没有什么比按记录处理更好的了,可能会在未来的版本中提供。阅读第20章。流处理基础。你会有一个清晰的想法

有没有一种方法可以不用kafka来实现,因为我们的数据量很小,我们不想引入另一个组件,如果不是必须的话,你可以使用HDFS/S3作为数据源而不是kafka。如果是这样,我们需要再添加一个组件,可以不用它吗,像其他电话会触发火花过程,还是像风暴?