猿问

火花流后立即火花RDD过滤器

我正在使用火花流,我从 Kafka 读取流。阅读此流后,我将其添加到榛子地图。


问题是,我需要在从 Kafka 读取流后立即从地图中过滤值。


我使用下面的代码来并行化地图值。


List<MyCompObj> list = CacheManager.getInstance().getMyMap().values().stream().collect(Collectors.toList());

JavaRDD<MyCompObj> myObjRDD = sparkContext.parallelize(list);

但是在这个逻辑中,我在另一个是 JavaInputDStream.foreachRDD 中使用 JavaRDD,这会导致序列化问题。


第一个问题是,如何通过事件驱动运行我的 Spark 作业?


另一方面,我只是想就预定的 Spark 作业获得一些意见。安排 Spark 作业在特定时间执行它的最佳做法是什么?


明月笑刀无情
浏览 171回答 2
2回答

慕田峪7331174

你考虑过Hazelcast Jet吗?它是由 Hazelcast 构建的流媒体引擎。持续将数据从 Kafka 泵送到 Hazelcast 一种容错方式是它的面包和黄油,请参阅代码示例Jet 与嵌入式 Hazelcast 打包在一起,可为您简化架构。

慕尼黑的夜晚无繁华

我通过将流处理和批处理分成两部分来解决我的问题,因为它必须是。我正在使用石英和 SparkLauncher 来触发新工作(示例)
随时随地看视频慕课网APP

相关分类

Java
我要回答