Spark Streaming:通过Dstreams 或 DataFrames做流数据处理,结果写入ClickHouse或Hive表

本文探讨Apache Spark Streaming的两种流处理方式——DStreams和Structured Streaming,着重讲解如何使用DStreams从Kafka消费数据,并将处理结果写入ClickHouse数据库。虽然Structured Streaming在低延迟和一致性上有优势,但DStreams在复杂逻辑处理上更具灵活性。文章最后展示了将数据批量插入ClickHouse的实现代码。
摘要由CSDN通过智能技术生成

       Apache Spark 当前最流行的大数据处理框架之一。最初它是作为替代 Hadoop 的 MapReduce 批处理框架而创建的,但现在它也支持 SQL、机器学习和流处理。今天我们重点看看 Spark Streaming,展示常用流处理的方式。

        流数据处理常出现在大数据用例中,用于连续生成动态数据的场景。在大多数情况下,数据以近似实时的方式处理,一次一条记录,处理结果用于提供及时的报警、呈现在仪表板上或者提供给机器学习模型,让我们基于数据的变化快速做出反应。

Dstreams 和 Dataframes

        Spark Streaming 在 Spark 0.7.0 中进入 alpha 阶段。它基于离散流或 DStreams 的思想。每个 DStream 表示的是一系列 RDD,如果用户已经熟悉基于RDD的批处理,这种方式很容易使用。目前DStreams 经历了很多改进,但仍然存在各种挑战,主要是因为它是低层次的 API。

        作为这些挑战的解决方案,Spark Structured Streaming 在 Spark 2.0 中被引入(并在 2.2 中变得稳定),作为构建在 Spark SQL 之上的扩展。它利用了 Spark SQL 相关的代码和内存优化方法。Structured Streaming还提供了非常强大的抽象,如Dataset/DataFrame APIs以及 SQL,不再是直接处理 RDD。

        Structured Streaming 和 Streaming with DStreams 都使用微批处理。最大的区别在于延迟和一致性保证:Structured Streaming一般能做到 100毫秒左右的延迟,保重处理并且只处理一次;DStreams 方法仅保证至少处理一次,但

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值