Spark Streaming 之后的 Spark RDD 过滤器
Spark RDD filter right after spark streaming
我正在使用 spark streaming 并从 Kafka 读取流。阅读此流后,我将其添加到 hazelcast 地图。
问题是,我需要在从 Kafka 读取流后立即从地图中过滤值。
我正在使用下面的代码来并行化映射值。
List<MyCompObj> list = CacheManager.getInstance().getMyMap().values().stream().collect(Collectors.toList());
JavaRDD<MyCompObj> myObjRDD = sparkContext.parallelize(list);
但在这个逻辑中,我在另一个 JavaInputDStream.foreachRDD 中使用 JavaRDD,这会导致序列化问题。
第一个问题是,我如何 运行 我的 spark 作业由事件驱动?
另一方面,我只想了解一些有关计划的 Spark 作业的意见。
安排 Spark 作业在特定时间执行它的最佳做法是什么?
你有没有考虑过Hazelcast Jet? It's a streaming engine built by Hazelcast. Continuously pumping the data from Kafka to Hazelcast a fault tolerant way is it's bread and butter, see the code sample
Jet 与嵌入式 Hazelcast 打包在一起,为您简化了体系结构。
我通过将流处理和批处理分为两部分来解决我的问题。
我正在使用 quartz 和 SparkLauncher 触发新作业 ()
我正在使用 spark streaming 并从 Kafka 读取流。阅读此流后,我将其添加到 hazelcast 地图。
问题是,我需要在从 Kafka 读取流后立即从地图中过滤值。
我正在使用下面的代码来并行化映射值。
List<MyCompObj> list = CacheManager.getInstance().getMyMap().values().stream().collect(Collectors.toList());
JavaRDD<MyCompObj> myObjRDD = sparkContext.parallelize(list);
但在这个逻辑中,我在另一个 JavaInputDStream.foreachRDD 中使用 JavaRDD,这会导致序列化问题。
第一个问题是,我如何 运行 我的 spark 作业由事件驱动?
另一方面,我只想了解一些有关计划的 Spark 作业的意见。 安排 Spark 作业在特定时间执行它的最佳做法是什么?
你有没有考虑过Hazelcast Jet? It's a streaming engine built by Hazelcast. Continuously pumping the data from Kafka to Hazelcast a fault tolerant way is it's bread and butter, see the code sample
Jet 与嵌入式 Hazelcast 打包在一起,为您简化了体系结构。
我通过将流处理和批处理分为两部分来解决我的问题。
我正在使用 quartz 和 SparkLauncher 触发新作业 (