Tag: spark structured streaming

使用RabbitMQ源的Spark结构化流式传输

我正在尝试编写一个Structured Streaming的自定义接收器,它将使用来自RabbitMQ消息。 Spark 最近发布了 DataSource V2 API,这似乎非常有前景。 由于它抽象了很多细节,我想在简单性和性能方面使用这个API。 但是,由于它很新,因此可用的资源不多。 我需要经验丰富的Spark人员做一些澄清,因为他们会更容易掌握关键点。 开始了: 我的出发点是博客文章系列,第一部分在这里 。 它显示了如何在没有流function的情况下实现数据源。 为了制作流媒体源,我略微改变了它们,因为我需要实现MicroBatchReadSupport而不是(或除了) DataSourceV2 。 为了提高效率,让多个spark执行器同时使用RabbitMQ是明智的,即从同一队列中消耗RabbitMQ 。 如果我没有感到困惑,输入的每个分区-in Spark的术语 – 对应于来自队列的消费者-in RabbitMQ术语。 因此,我们需要为输入流分配多个分区,对吧? 与本系列的第4部分类似,我实现了MicroBatchReader ,如下所示: @Override public List<DataReaderFactory> createDataReaderFactories() { int partition = options.getInt(RMQ.PARTITICN, 5); List<DataReaderFactory> factories = new LinkedList(); for (int i = 0; i < partition; i++) { factories.add(new RMQDataReaderFactory(options)); } […]