当前位置: 首页 > 知识库问答 >
问题:

Kafka-Spark流对是否可以同时用于批处理+实时数据?

呼延智明
2023-03-14

H全部,

如果有人有任何经验的kafka-spark流对处理各种数据,请给我一个简短的细节,如果这是一个可行的解决方案,并比有两个不同的管道更好。

提前道谢!

共有1个答案

益银龙
2023-03-14

我提出了两个不同的管道--一个用于批处理数据(Sqoop/Spark/Hive),另一个用于实时数据(kafka-spark stream)。

管道1:Sqoop是批处理加载的一个很好的选择,但是它的性能会变慢,因为底层架构仍然在MAP-Reduce上。虽然有在spark上运行sqoop的选项,但没有尝试。一旦数据在HDFS中,您就可以使用hive,这是批处理的很好的解决方案。说完可以用Spark替换sqoop,如果您正在担心RDMS获取时间。您也可以在spark中进行批处理转换。我认为这是一个很好的解决办法。

管道二:Kafaka和星火流是最明显的选择,是一个不错的选择。但是,如果您正在使用汇流Dist。那么您可以用K-SQL,K-Streams替换大部分的spark转换,这将创建一个实时转换。

我想说,有一个单独的系统用于批处理和一个用于实时处理是很好的。这就是lambda架构。但是如果您正在寻找一个更统一的框架,那么您可以尝试Apache Beam,它为批处理和实时处理提供了一个统一的框架。您可以从多个运行程序中选择执行查询。

希望这有帮助:)

 类似资料:
  • 现在我正在用Apache Kafka做一些测试。在Kafka生产者的配置中,参数batch.size和linger.ms控制批处理策略。是否可以在生产的同时动态地制作这些参数?例如。如果数据摄取率上升很快,我们可能希望增加batch.size以每批积累更多的消息。我没有找到任何动态批处理与Kafka生产者的例子。有没有可能实施?

  • 在Kafka流2.0。 我的用例:能够从重新处理应用程序的历史开始(部分)用事件创建的时间(用户从原始数据定义并通过TimestampExtractor设置)重新处理数据,与长期运行的不间断应用程序一起运行,将数据发送到输出主题(两个应用程序将读取并发送到相同的输出主题,用于构建状态)。 存储是根据这些主题构建的,包括按会话设置窗口。想象一下,我想为这些主题保留一个月的时间(对于乱序事件和消费)—

  • 在这个Link-Link中,提到了一个已经离线构建的机器学习模型,可以对着流数据进行测试。 “你还可以轻松地使用MLlib提供的机器学习算法。首先,有流式机器学习算法(例如流式线性回归、流式KMeans等),它们可以同时从流式数据中学习,也可以在流式数据上应用模型。除此之外,对于更大类的机器学习算法,你可以离线学习一个学习模型(即使用历史数据),然后在流式数据上在线应用模型。更多细节请参见MLli

  • 我正试图通过串行连接将处理过程中的一些数据发送到Arduino,以便Arduino可以控制LED条。在传输过程中,我可以查看串行监视器吗? 我不能使用任何语句(用于调试)。每次我尝试我都会 串行端口COM3已在使用中。尝试退出任何可能使用它的程序。 当我同时查看串行监视器时,是否有办法进行串行通信?

  • 如果每个Kafka消息属于一个特定的会话,如何管理会话关联,以便同一个Spark执行器看到链接到一个会话的所有消息? 如何确保属于会话的消息被Spark executor按照在Kafka中报告的顺序处理?我们能以某种方式实现这一点而不对线程计数施加限制并导致处理开销(如按消息时间戳排序)吗? 何时检查会话状态?在执行器节点崩溃的情况下,如何从最后一个检查点恢复状态?在驱动程序节点崩溃的情况下,如何

  • 我们的要求是同时写多个文件。我们正在使用spring批处理来编写文件,并且我们正在从不同的线程中启动spring批处理。每个线程都有自己的应用程序上下文。因此我们可以确保单例bean不会跨多个线程共享。下面是我的代码片段。 这就是我们调用spring批处理的方式。 ThreadPoolExecutor TPE=new ThreadPoolExecutor(10,10,1000000,TimeUni