`

Spark 以及 spark streaming 核心原理及实践 - (2)

 
阅读更多

Spark Streaming运行原理

spark程序是使用一个spark应用实例一次性对一批历史数据进行处理,spark streaming是将持续不断输入的数据流转换成多个batch分片,使用一批spark应用实例进行处理。

从原理上看,把传统的spark批处理程序变成streaming程序,spark需要构建什么?

需要构建4个东西:

  1. 一个静态的 RDD DAG 的模板,来表示处理逻辑;

  2. 一个动态的工作控制器,将连续的 streaming data 切分数据片段,并按照模板复制出新的 RDD ;

  3. DAG 的实例,对数据片段进行处理;

  4. Receiver进行原始数据的产生和导入;Receiver将接收到的数据合并为数据块并存到内存或硬盘中,供后续batch RDD进行消费;

  5. 对长时运行任务的保障,包括输入数据的失效后的重构,处理任务的失败后的重调。

具体streaming的详细原理可以参考广点通出品的源码解析文章:

https://github.com/lw-lin/CoolplaySpark/blob/master/Spark%20Streaming%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%E7%B3%BB%E5%88%97/0.1%20Spark%20Streaming%20%E5%AE%9E%E7%8E%B0%E6%80%9D%E8%B7%AF%E4%B8%8E%E6%A8%A1%E5%9D%97%E6%A6%82%E8%BF%B0.md#24

对于spark streaming需要注意以下三点:

  1. 尽量保证每个work节点中的数据不要落盘,以提升执行效率。

  1. 保证每个batch的数据能够在batch interval时间内处理完毕,以免造成数据堆积。

  1. 使用steven提供的框架进行数据接收时的预处理,减少不必要数据的存储和传输。从tdbank中接收后转储前进行过滤,而不是在task具体处理时才进行过滤。

Spark 资源调优

内存管理:

Executor的内存主要分为三块:

第一块是让task执行我们自己编写的代码时使用,默认是占Executor总内存的20%;

第二块是让task通过shuffle过程拉取了上一个stage的task的输出后,进行聚合等操作时使用,默认也是占Executor总内存的20%;

第三块是让RDD持久化时使用,默认占Executor总内存的60%。

每个task以及每个executor占用的内存需要分析一下。每个task处理一个partiiton的数据,分片太少,会造成内存不够。

其他资源配置:

具体调优可以参考美团点评出品的调优文章:

http://tech.meituan.com/spark-tuning-basic.html

http://tech.meituan.com/spark-tuning-pro.html

Spark 环境搭建

spark tdw以及tdbank api文档:

http://git.code.oa.com/tdw/tdw-spark-common/wikis/api

其他学习资料:

http://km.oa.com/group/2430/articles/show/257492


原文链接:https://www.qcloud.com/community/article/770164

 

 

https://www.cnblogs.com/liuliliuli2017/p/6809094.html

分享到:
评论

相关推荐

    06Spark Streaming原理和实践

    ### Spark Streaming原理与实践 #### 一、为什么需要流处理? 传统的批处理框架如MapReduce在处理实时数据流时存在一些局限性,主要是因为每次处理一批数据就需要启动一个新任务,而任务的启动过程(包括输入切分...

    spark-streaming-twitter_2.10-0.9.0-incubating.zip

    对于Spark Streaming Twitter项目来说,这意味着开发者可以深入理解其内部工作原理,根据自己的需求进行定制,或者贡献代码回项目。 【压缩包子文件的文件名称列表】中的"orafile-master"可能表示解压后的文件夹名...

    3.Spark编程模型(上)--概念及SparkShell实战.pdf

    7.SparkStreaming(上)--SparkStreaming原理介绍.pdf 7.SparkStreaming(下)--SparkStreaming实战.pdf 8.SparkMLlib(上)--机器学习及SparkMLlib简介.pdf 8.SparkMLlib(下)--SparkMLlib实战.pdf 9.SparkGraphX...

    spark Streaming原理和实战

    ### Spark Streaming原理与实战 #### 一、Spark Streaming概述 **Spark Streaming** 是Apache Spark生态中的一个重要组件,它主要用于处理实时数据流。相比于传统的批处理技术,Spark Streaming提供了对实时数据流...

    spark之sparkStreaming 理解

    ### Spark Streaming工作原理 #### 四、工作流程 1. **实时数据接收**:Spark Streaming接收实时输入数据流。 2. **数据分批**:将数据流分割成一系列微小的批次数据。 3. **数据处理**:利用Spark Engine处理这些...

    spark-assembly-1.5.2-hadoop2.6.0.jar

    Spark-assembly-1.5.2-hadoop2.6.0.jar是一个fat jar,包含了Spark的所有依赖,包括Spark自身的核心库、Hadoop客户端库以及其他相关的第三方库。这样做的目的是为了简化Spark应用程序的部署,避免因依赖冲突而引发...

    spark streaming

    数据一旦被接收,Spark Streaming就可以利用Spark的强大功能进行转换和处理,包括映射、归约、联结以及窗口操作等。 Spark Streaming 处理实时数据流的能力得到了容错性的加强。得益于底层的RDD(弹性分布式数据集...

    大数据技术原理及应用课实验7 :Spark初级编程实践

    在"大数据技术原理及应用课实验7:Spark初级编程实践"中,我们主要关注Spark的两个核心知识点:数据读取和Spark应用程序的开发流程。 首先,Spark提供了一种简单的方式去访问不同的数据源,包括本地文件系统和...

    spark Streaming和storm的对比

    以下将详细介绍Spark Streaming和Storm的核心原理,并进行对比分析。 首先来了解Spark Streaming,它是由Spark提供的一种实时数据处理框架。Spark Streaming利用了Spark强大的批处理能力,并将流式计算转换成一系列...

    Spark Streaming Systems - Tyler Akidau

    总的来说,《Spark Streaming Systems》是理解Spark Streaming原理和实践的宝贵资源,无论你是初学者还是有经验的开发者,都能从中获得对实时数据处理深入的理解,并学会如何利用Spark Streaming构建高性能的流处理...

    SparkStreaming原理介绍

    ### Spark Streaming 原理详解 #### 1. Spark Streaming 简介 ...通过对 Spark Streaming 的核心概念、架构设计、编程模型以及性能优化策略的深入理解,可以帮助开发者更好地构建高效、可靠的实时数据处理系统。

    Spark-Streaming编程指南.docx

    Spark Streaming 的工作原理基于微批处理(Micro-batching),它将实时数据流分解为一系列小批次的数据块,这些数据块被称为 Discrete Stream,或简称 DStream。DStream 是一系列连续的 Resilient Distributed ...

    SparkStreaming和kafka的整合.pdf

    Spark Streaming将数据流分割成一系列小批量的数据块进行处理,这种机制使得Spark Streaming既能够处理实时数据流,又能利用Spark的核心API进行复杂的数据处理。 #### 2. Kafka简介 Apache Kafka是一种分布式的发布...

    Spark Streaming 与 Kafka 集成原理.pdf

    Spark Streaming 与 Kafka 集成原理 Spark Streaming 与 Kafka 集成原理是指 Spark Streaming 框架与 Kafka 消息队列系统的集成,旨在实现高效、实时的数据处理和分析。该集成原理主要包括两种方案:Receiver-based...

    开发者最佳实践日-Spark-Ecosystem

    ### 开发者最佳实践日——Spark生态系统与内部机制 #### 一、Spark概述与内部机制 **1.1 Spark简介** Apache Spark 是一种快速且通用的大规模数据处理引擎。它以其高速度、易用性、通用性和对Hadoop的集成支持而...

    Spark The Definitive Guide-201712

    这本书全面覆盖了Apache Spark的核心概念、技术和最佳实践,为读者提供了一个深入了解Spark的窗口。 Spark作为一个快速、通用且可扩展的大数据处理框架,其主要特点在于内存计算,能够大大提高数据处理的效率。2017...

    spark基本架构及原理

    Apache Spark的核心优势在于其围绕速度、易用性和复杂分析构建的能力。相较于其他大数据处理技术如Hadoop和Storm,Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度...

Global site tag (gtag.js) - Google Analytics