SparkStreaming 总结(1) ---- Ideal 消费 kafka主题的数据 Demo版本

SparkStreaming 简介

spark的内置模块,用于实时计算
微批次流式实时计算框架

SparkStreaming 架构

有两个线程,采集线程和处理线程
采集线程向Driver 提交,Executor 进行具体数据的处理。

SparkStreaming 的背压机制

根据executor的消费能力来处理数据

SparkStrreaming 的创建方式

DStream 是SparkStraming对处理的数据集的一个抽象
读取指定端口数据的创建DS
通过RDD 队列创建DS(不常用)
通过定义Receiver读取指定数据源数据创建DS
通过读取Kafka 读取数据源
官方给了两种:

spark-streaming-kafka-0-8 在spark2.3.0以后过时

  1. Receiver DStream
    默认情况下,offset 维护在 zk 中
  2. Direct Dstream
    默认情况下,offset 维护在checkpoint检查点,需要改变
    SparkStreamingContext的创建方式
    可以手动指定 offset 维护位置,为了保证数据的精准一致,维护在有事务的存储。

spark-streaming-kafka-0-10 推荐使用版本
使用官方链接: link.

Kafka 创建主题,并且生产者进行消费

# 创建kafka主题
cd /opt/cloudera/parcels/CDH/bin
# 创建主题
./kafka-topics --create -zookeeper 10.0.0.205:2181 --replication-factor 2 --partitions 3 --topic streamingLLd
# 查看创建主题
./kafka-topics --list -zookeeper 10.0.0.205:2181
# 查看主题明细信息
./kafka-topics  --describe --topic streamingLLd  -zookeeper 10.0.0.205:2181
# 对 该主题开启生产者 进行生产数据
 ./kafka-console-producer --broker-list  cdh05:9092 --topic streamingLLd

spark-streaming-kafka-0-10 消费代码

package ypl.com.streaming

import org.apache.kafka.clients.consumer.{
   ConsumerConfig, ConsumerRecord}
import org.apache.kafka.common.serialization.StringDeserializer
import org.apache.spark.SparkConf
import org.apache.spark.streaming.dstream.InputDStream
import org.apache.spark.streaming.kafka010.{
   ConsumerStrategies, KafkaUtils, LocationStrategies}
import org.apache.spark.streaming.{
   Seconds, StreamingContext}


object SparkStreamDirectAPI {
   
  def main(args: Array[String]): Unit = {
   

    // 配置文件对象
    val conf = new SparkConf().setMaster("local[*]").setAppName("SparkDirectAPI")

    // 创建StreamingContext 对象
    val scc = new StreamingContext(conf, Seconds(3))


    // 定义Kafka 相关的连接参数
    val kafkaParams = Map[String, Object](
      ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG -> "cdh03:9092,cdh04:9092,cdh05:9092",
      ConsumerConfig.GROUP_ID_CONFIG -> "lld",
      ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG -> "org.apache.kafka.common.serialization.StringDeserializer",
      ConsumerConfig.VALUE_DESERIALIZER_CLAS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值