spark-streaming-kafka-0-8 官网讲解

简介:

spark-streaming-kafka-0-8
Note: Kafka 0.8 support is deprecated as of Spark 2.3.0.
0.8在spark2.3中被标为过时的,但是没关系,还能用

描述两种接收数据的方式receive 和Direct(spark1.3以后才有的)

  1. 有receive的
    receive接收数据,在ui上有个jobid=0,使用kafka high-level consumer api,接收kafka数据先到executer内存里面,

然后再启动streaming作业处理数据,但是在默认的配置下面可能会造成数据的丢失。为了保证数据零丢失,可以开启wal
(预先写日志)机制,可以防止数据丢失
缺点:吞度量就小很多了。
代码
import org.apache.spark.streaming.kafka._
val topics="spark_kafkap_streaming".split(",").map((_,1)).tomap //1是现成数
val ssc=new StreamingContext(....);
val kafkaStream = KafkaUtils.createStream(ssc,"hadoop001:2181", "hadoop_groupid",topics)
// [ZK quorum], [consumer group id], [per-topic number of Kafka partitions to consume])
kafkaStream.print(),打印之后之后是个k v,形式的,k无用时可只用v
注意:

  1. kafka中partitons数量与rdd中partitions数量没有任何关系
  2. 如果慢了可以增加组,使用多个receive
    3.若开启wal机制存储都hdfs,可以设置MEMORY_AND_DISK_SER,设置保存一份
  3. Direct的
    spark1.3之后,只要记录offset,数据就能恢复,它周期性的查询topic partitions offset range,kafka consumer api读取offset

优势:

  1. 简化了并性度,sparkstreaing创建的partiton和kafka的partitons一一对应,一对一的映射及优化并行度。
    2.效率更高,不用像revice的方式必须使用wal的方式保证数据丢失,只要你有足够的保存天数,就能获取到数据。

3.执行一次的语义,revece方式使用wal才会保证不丢失,但是会重复,offset保存在zookeeper。在direct使用simple api,不是用zookeeper,使用ckepoint,或者自己保存offset,保证幂等性或原子性
缺点:
需要自己更新offset到zookeeper。

相关文章
|
1月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
212 0
|
1月前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
1月前
|
机器学习/深度学习 SQL 分布式计算
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
介绍 Apache Spark 的基本概念和在大数据分析中的应用。
|
4天前
|
存储 分布式计算 Hadoop
Spark和Hadoop都是大数据处理领域的重要工具
【6月更文挑战第17天】Spark和Hadoop都是大数据处理领域的重要工具
33 7
|
8天前
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
35 6
|
6天前
|
分布式计算 Hadoop 大数据
大数据技术:Hadoop与Spark的对比
【6月更文挑战第15天】**Hadoop与Spark对比摘要** Hadoop是分布式系统基础架构,擅长处理大规模批处理任务,依赖HDFS和MapReduce,具有高可靠性和生态多样性。Spark是快速数据处理引擎,侧重内存计算,提供多语言接口,支持机器学习和流处理,处理速度远超Hadoop,适合实时分析和交互式查询。两者在资源占用和生态系统上有差异,适用于不同应用场景。选择时需依据具体需求。
|
9天前
|
分布式计算 Kubernetes Spark
大数据之spark on k8s
大数据之spark on k8s
|
9天前
|
机器学习/深度学习 数据采集 分布式计算
基于spark的大数据分析预测地震受灾情况的系统设计
基于spark的大数据分析预测地震受灾情况的系统设计
|
19天前
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
|
24天前
|
分布式计算 Hadoop 大数据
探索大数据技术:Hadoop与Spark的奥秘之旅
【5月更文挑战第28天】本文探讨了大数据技术中的Hadoop和Spark,Hadoop作为分布式系统基础架构,通过HDFS和MapReduce处理大规模数据,适用于搜索引擎等场景。Spark是快速数据处理引擎,采用内存计算和DAG模型,适用于实时推荐和机器学习。两者各有优势,未来将继续发展和完善,助力大数据时代的发展。