spark读取kafka数据 createStream和createDirectStream的区别
1、KafkaUtils.createDstream
构造函数为KafkaUtils.createDstream(ssc, [zk], [consumer group id], [per-topic,partitions] )
使用了receivers来接收数据,利用的是Kafka高层次的消费者api,对于所有的receivers接收到的数据将会保存在spark executors中,然后通过Spark Streaming启动job来处理这些数据,默认会丢失,可启用WAL日志,该日志存储在HDFS上
A、创建一个receiver来对kafka进行定时拉取数据,ssc的rdd分区和kafka的topic分区不是一个概念,故如果增加特定主体分区数仅仅是增加一个receiver中消费topic的线程数,并不增加spark的并行处理数据数量
B、对于不同的group和topic可以使用多个receivers创建不同的DStream
C、如果启用了WAL,需要设置存储级别,即KafkaUtils.createStream(….,StorageLevel.MEMORY_AND_DISK_SER)
2.KafkaUtils.createDirectStream
区别Receiver接收数据,这种方式定期地从kafka的topic+partition中查询最新的偏移量,再根据偏移量范围在每个batch里面处理数据,使用的是kafka的简单消费者api
优点:
A、 简化并行,不需要多个kafka输入流,该方法将会创建和kafka分区一样的rdd个数,而且会从kafka并行读取。
B、高效,这种方式并不需要WAL,WAL模式需要对数据复制两次,第一次是被kafka复制,另一次是写到wal中
C、恰好一次语义(Exactly-once-semantics),传统的读取kafka数据是通过kafka高层次api把偏移量写入zookeeper中,存在数据丢失的可能性是zookeeper中和ssc的偏移量不一致。EOS通过实现kafka低层次api,偏移量仅仅被ssc保存在checkpoint中,消除了zk和ssc偏移量不一致的问题。缺点是无法使用基于zookeeper的kafka监控工具

spark读取kafka数据 createStream和createDirectStream的区别相关推荐

  1. Spark Streaming读取Kafka数据的两种方式

    Kafka在0.8和0.10之间引入了一种新的消费者API,因此,Spark Streaming与Kafka集成,有两种包可以选择: spark-streaming-kafka-0-8与spark-s ...

  2. spark把kafka数据写到hive

    写入分区表: 准备工作:先建好分区表 方法一:(使用dataframe) 写数据到数据所在的位置,因为hive分区的本质就是分文件夹,先用spark把数据写到文件夹位置,然后执行sql添加分区 1.写 ...

  3. 《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL

    <!-- more --> 前言 之前其实在 <从0到1学习Flink>-- 如何自定义 Data Sink ? 文章中其实已经写了点将数据写入到 MySQL,但是一些配置化的 ...

  4. kafka学习_《从0到1学习Flink》—— Flink 读取 Kafka 数据写入到 RabbitMQ

    前言 之前有文章 <从0到1学习Flink>-- Flink 写入数据到 Kafka 写过 Flink 将处理后的数据后发到 Kafka 消息队列中去,当然我们常用的消息队列可不止这一种, ...

  5. Spark读取Hive数据的两种方式与保存数据到HDFS

    Spark读取Hive数据的两种方式与保存数据到HDFS Spark读取Hive数据的方式主要有两种 1. 通过访问hive metastore的方式,这种方式通过访问hive的metastore元数 ...

  6. 写入mysql_《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL

    前言 之前其实在 <从0到1学习Flink>-- 如何自定义 Data Sink ? 文章中其实已经写了点将数据写入到 MySQL,但是一些配置化的东西当时是写死的,不能够通用,最近知识星 ...

  7. 【腾讯轻量应用服务器上部署kafka并通过flink读取kafka数据】

    环境准备 经过1个月的摸索,最终选择在腾讯云上搭建一个学习环境.当时选择原因还是新用户有优惠(150左右3年),但现在看1核2g的配置勉强够用,建议后续小伙伴选择时最好是2核4g配置. 由于是单节点安 ...

  8. java读写德卡数据_Spark Streaming 读取Kafka数据写入ES

    简介: 目前项目中已有多个渠道到Kafka的数据处理,本文主要记录通过Spark Streaming 读取Kafka中的数据,写入到Elasticsearch,达到一个实时(严格来说,是近实时,刷新时 ...

  9. java读avro的流_0016-Avro序列化反序列化和Spark读取Avro数据

    1.简介 本篇文章主要讲如何使用java生成Avro格式数据以及如何通过spark将Avro数据文件转换成DataSet和DataFrame进行操作. 1.1Apache Arvo是什么? Apach ...

  10. 0016-Avro序列化反序列化和Spark读取Avro数据

    温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看. 1.简介 本篇文章主要讲如何使用java生成Avro格式数据以及如何通过spark将Avro数据文件转换成DataSet和DataFra ...

最新文章

  1. 数组、ArrayList、链表、LinkedList
  2. simple k means
  3. Python 命令pip install pygame安装报错
  4. 获取MySQL数据库表结构的信息(字段名,字段类型,注释等)
  5. 安装与配置-以前的某个程序安装已在安装计算机上创建挂起的文件操作......
  6. 云图说 | 快速创建一个kubernetes集群
  7. 知乎Python后端面试总结
  8. ionic checkbox 精简用法
  9. guestfish修改镜像内容
  10. Julia: LaTeX 符号
  11. 锁相环的输入、输出——以PSCAD的PLL元件为例
  12. kuangbin字典树
  13. C语言: gotoxy函数
  14. 树莓派修改root密码
  15. matlab imrotate中心,matlab中imrotate
  16. 8.局部变量、成员变量、jvm垃圾回收机制 、封装、this关键字、匿名对象
  17. Longhorn云原生文件存储
  18. 数字绿土参加2017美国地球物理联合会(AGU)年会
  19. mysql mybatis批量删除,Mybatis批量删除多表
  20. c语言debug执行错误,C语言调试出错 0xC0000005: Access Violation.

热门文章

  1. 微服务与虚拟化技术博客总结
  2. 每天一点正则表达式积累之(?=X)和(?!X)测试(七)
  3. Flink Remote Shuffle 开源:面向流批一体与云原生的 Shuffle 服务
  4. GitHub 标星 8w!这个开源面试总结屌爆了!
  5. jdbc连接oracle mysql_JDBC连接MySQL、Oracle和SQL server的配置
  6. php 删除判断是否存在,PHP – 判断utf-8编码是否存在BOM并自动删除
  7. java中成绩转换_成绩转换
  8. ecplise git修改提交信息_Eclipse中Git的使用说明之一:使用Git上传新项目到远程仓库...
  9. python中常用的函数有哪些_python里常用的函数类型
  10. 内江计算机职业学校有哪些,内江第二计算机职业中学有哪些专业