Spark 计算框架
来源:互联网 发布:大数据调研提纲 编辑:程序博客网 时间:2024/05/29 03:34
Spark
- Spark 是什么?
Apache Spark™是用于大规模数据处理的快速和通用引擎.
- 速度:在内存中,运行程序比Hadoop MapReduce快100倍,在磁盘上则要快10倍.
Apache Spark具有支持非循环数据流和内存计算的高级DAG执行引擎.
- 易用:可以使用Java,Scala,Python,R快速编写程序.
Spark提供80+高级操作方法,可以轻松构建并行应用程序.
- Spark提供了一堆库,包括SQL和DataFrame,MLlib,GraphX和Spark Streaming。您可以在相同的应用程序中无缝地组合这些库.
- Spark在Hadoop,Mesos,独立或云端运行。它可以访问各种数据源,包括HDFS,Cassandra,HBase和S3
一,RDD 弹性分布式数据集
定义, TA 容错的,并行的数据结构,存储到磁盘和内存,控制数据分区。本质上是一个只读的分区记录集合,RDD包含多个分区,每个分区是一个dataset片段.
依赖, RDD可以相互依赖。如果RDD的每个分区最多只能被一个Child RDD的一个分区使用,窄依赖;若多个Child RDD分区都可以依赖,宽依赖.
首先,窄依赖被划分到同一个stage,支持在同一个cluster node上以管道形式执行多条命令,eg,先map,紧接着filter.相反,宽依赖由于依赖的上游节点不止一个,往往跨界点传输数据.
其次从容灾角度讲,窄依赖的只需要执行父RDD的丢失分区的计算即可恢复.而宽依赖需要考虑恢复所有父RDD的丢失分区.
- 本质, RDD是Spark中的抽象数据结构类型,从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。本质是一个抽象类,如下:
abstract class RDD[T: ClassTag](@transient private var _sc: SparkContext,@transient private var deps: Seq[Dependency[_]]) extends Serializable with Logging { }
- DAG 有向无环图
- 容错处理
传统关系型数据库:采用日志记录容灾,数据恢复都依赖于重新执行日志中的SQL;
Hadoop:通过把数据备份到其他机器来容灾;
RDD:本身是一个不可变的数据集,当某个worker节点上的任务失败时,可以利用DAG重新调度计算这个失败的任务,由于不用复制数据,从而大大降低了网络通信.在流式计算场景中,Spark需要记录日志和检查点,以便利用checkpoint和日志对数据进行恢复;
二,Discretized Streams (DStreams)
- DStream是一系列连续的RDD,是Spark Streaming提供的基本抽象如下图所示:
- 对DStream应用的任何操作都将转换为底层RDD上的操作
三,Initializing StreamingContext
- 要初始化Spark Streaming程序,必须创建一个StreamingContext对象,它是所有Spark Streaming功能的主要入口.
SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);JavaStreamingContext ssc = new JavaStreamingContext(conf, new Duration(1000));
四,Input DStreams and Receivers
Spark Streaming提供两类内置流式传输源:
- 基本数据源:StreamingContext API中直接提供的源.比如:文件系统和套接字连接.(file 和 socket)
- 高级源:Kafka,Flume,Kinesis等资源可以通过额外的实用类来获得.
Spark Streaming 提供两种接收器:
- 可靠的接收器 - 当数据已被接收并且通过复制存储在Spark中时,可靠的接收器正确地向可靠的源发送确认。
- 不可靠的接收器 - 不可靠的接收器不向源发送确认。这可以用于不支持确认的源,或者甚至当不需要或需要进入确认的复杂性时,用于可靠的源。
五,Transformations on DStreams
六,Output Operations on DStreams
七,了解更多
- An Architecture for Fast and General Data Processing on Large Clusters :关于RDD,DStream 的整个设计详解
- Spark的官网 Spark
阅读全文
1 0
- Spark 计算框架
- Spark Streaming实时计算框架介绍
- Spark——并行计算框架
- Spark Streaming实时计算框架介绍
- Spark Streaming实时计算框架介绍
- Spark Streaming实时计算框架介绍
- Spark:一个高效的分布式计算框架
- <转>Spark Streaming实时计算框架介绍
- Spark Streaming实时计算框架介绍
- 聊聊spark这个大数据计算框架
- Spark Streaming实时计算框架介绍
- Spark :工作组上的集群计算的框架
- 流式计算框架:Storm VS Spark Streaming
- 大数据计算框架Hadoop, Spark和MPI
- 基于Spark的图计算框架 GraphX 入门介绍
- 5 贯通Spark Streaming流计算框架的运行流程
- 大数据计算框架Hadoop, Spark和MPI
- Spark streaming & storm流式计算框架对比
- Ubuntu安装Tomcat
- hiERROR: Value '0000-00-00' can not be represented as java.sql.Timestamp
- SQL分组查询
- java 集合遍历Iterator/foreach
- 下载并升级更新pip
- Spark 计算框架
- sizeof用于判断表达式的长度时的注意事项
- python在pycharm中代码格式化及快速注释
- Tree Requests (dfs序,二进制优化,好题)
- Runloop
- 微信公众号PHP接口校验代码
- html5通过jquery实现跨域请求
- 作业
- 决策单调性的利用 jzoj5427【NOIP2017提高A组集训10.25】吃草