一、Spark Core提供Spark最基础与最核心的功能,主要包括以下功能:

(1)SparkContext:

通常而言,Driver Application的执行与输出都是通过SparkContext来完成的。在正式提交Application之前,首先需要初始化SparkContext。SparkContext隐藏了网络通信、分布式部署、消息通信、存储能力、计算能力、缓存、测量系统、文件服务、Web服务等内容,应用程序开发者只需要使用SparkContext提供的API完成功能开发。SparkContext内置的DAGScheduler负责创建Job,将DAG中的RDD划分到不同的Stage,提交Stage等功能。内置的TaskScheduler负责资源的申请,任务的提交及请求集群对任务的调度等工作。

(2)存储体系:

Spark优先考虑使用各节点的内存作为存储,当内存不足时才会考虑使用磁盘,这极大地减少了磁盘IO,提升了任务执行的效率,使得Spark适用于实时计算、流式计算等场景。此外,Spark还提供了以内存为中心的高容错的分布式文件系统Tachyon供用户进行选择。Tachyon能够为Spark提供可靠的内存级的文件共享服务。

(3)计算引擎:

计算引擎由SparkContext中的DAGSchedulerRDD以及具体节点上的Executor负责执行的MapReduce任务组成。DAGScheduler和RDD虽然位于SparkContext内部,但是在任务正式提交与执行之前会将Job中的RDD组织成有向无环图(DAG),并对Stage进行划分,决定了任务执行阶段任务的数量迭代计算shuffle等过程。

(4)部署模式:

由于单节点不足以提供足够的存储和计算能力,所以作为大数据处理的Spark在SparkContext的TaskScheduler组件中提供了对Standalone部署模式的实现和Yarn、Mesos等分布式资源管理系统的支持。通过使用StandaloneYarnMesos等部署模式为Task分配计算资源,提高任务的并发执行效率。

二、Spark的几大子框架包括:

(1)Spark SQL:

首先使用SQL语句解析器(SqlParser)将SQL转换为语法树(Tree),并且使用规则执行器(RuleExecutor)将一系列规则(Rule)应用到语法树,最终生成物理执行计划并执行。其中,规则执行器包括语法分析器(Analyzer)和优化器(Optimizer)。

(2)Spark Streaming:

用于流式计算。Spark Streaming支持Kafka、Flume、Twitter、MQTT、ZeroMQ、Kinesis和简单的TCP套接字等多种数据输入源。输入流接收器(Receiver)负责接入数据,是接入数据流的接口规范。Dstream是Spark Streaming中所有数据流的抽象,Dstream可以被组织为Dstream Graph。Dstream本质上由一系列连续的RDD组成。

(3)GraphX:

Spark提供的分布式图计算框架。GraphX主要遵循整体同步并行(bulk Synchronous parallel,BSP)计算模式下的Pregel模型实现。GraphX提供了对图的抽象Graph,Graph由顶点(Vertex),边(Edge)及继承了Edge的EdgeTriplet三种结构组成。GraphX目前已经封装了最短路径,网页排名,连接组件,三角关系统计等算法的实现,用户可以选择使用。

(4)MLlib:

Spark提供的机器学习框架。机器学习是一门设计概率论、统计学、逼近论、凸分析、算法复杂度理论等多领域的交学科。MLlib目前已经提供了基础统计、分析、回归、决策树、随机森林、朴素贝叶斯、保序回归、协同过滤、聚类、维数缩减特征提取与转型、频繁模式挖掘、预言模型标记语言、管道等多种数理统计、概率论、数据挖掘方面的数学算法。

Spark-core(核心)的基本介绍相关推荐

  1. Spark Core Aggregator

    Spark Core Aggregator 本文要介绍的是Spark Core中的Aggregator这个类.这个类的用处非常大,为什么这么说呢?我们都知道Spark支持传统的MapReduce模型, ...

  2. sparkcore分区_Spark学习:Spark源码和调优简介 Spark Core (二)

    本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正.为了简化论述,将部分细节放到了源码中作为注释,因此正文中是主要内容. 第一部分内容见: S ...

  3. 分布式实时计算—Spark—Spark Core

    原文作者:bingoabin 原文地址:Spark Core 目录 一.Spark Core 1. 主要功能 2. Spark Core子框架 3. Spark架构 4. Spark计算模型 二.组件 ...

  4. Spark源码和调优简介 Spark Core

    作者:calvinrzluo,腾讯 IEG 后台开发工程师 本文基于 Spark 2.4.4 版本的源码,试图分析其 Core 模块的部分实现原理,其中如有错误,请指正.为了简化论述,将部分细节放到了 ...

  5. Spark 的核心 RDD 以及 Stage 划分细节,运行模式总结

    精选30+云产品,助力企业轻松上云!>>> 阅读文本大概需要 5 分钟. 以下内容,部分参考网络资料,也有自己的理解, 图片 99% 为自己制作.如有错误,欢迎留言指出,一起交流. ...

  6. spark core面试专题

    1.Spark是什么? Spark是大数据的调度,监控和分配引擎.它是一个快速通用的集群计算平台.Spark扩展了流行的MapReduce模型.Spark提供的主要功能之一就是能够在内存中运行计算 , ...

  7. Spark最详细安装和介绍--JavaApi!!!!!!!

    Spark概述 Spark官方介绍: Spark是什么? Apache Spark是用于大规模数据处理的统一分析引擎 Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和 ...

  8. 深入理解Spark:核心思想与源码分析

    大数据技术丛书 深入理解Spark:核心思想与源码分析 耿嘉安 著 图书在版编目(CIP)数据 深入理解Spark:核心思想与源码分析/耿嘉安著. -北京:机械工业出版社,2015.12 (大数据技术 ...

  9. rdd数据存内存 数据量_spark系列:spark core 数据交互技术点(数据模型)

    spark core实现了spark的基本功能:存储交互.任务调度.内存管理.错误恢复等:本片文章主要介绍与数据交互相关的核心技术点. 本文目录: RDD特性及交互 shuffle操作及调优 RDD持 ...

  10. [Spark]PySpark入门学习教程---介绍(1)

    一 安装指引 (91条消息) [Hadoop] mac搭建hadoop3.X 伪分布模式_小墨鱼的专栏-CSDN博客https://zengwenqi.blog.csdn.net/article/de ...

最新文章

  1. 张继平院士:40年北大数学路 | 北大黄金一代是如何培养的
  2. elasticsearch ——id字段说明,内部是_uid
  3. Java SE 7 Update 25 –发行说明进行了解释。
  4. 【NOI2014】起床困难综合症 贪心
  5. ubuntu server版本安装指南(1)
  6. 怎样完整的转换PDF格式文件
  7. css三大样式(行内样式)
  8. android高德地图热力图,调用高德地图API(热力图)详解(示例代码)
  9. redis hset hget字典的实现
  10. 线粒体和叶绿体的基因组特点_叶绿体和线粒体基因组的组装研究
  11. linux:服务开机自启
  12. 计算机专业需不需要英语翻译,谈计算机专业英语翻译的方法.doc
  13. 在ipad上播放flash大集合
  14. 为什么要进行傅立叶变换?如何用Matlab实现快速傅立叶变换?
  15. ElasticSearch--分词器--使用/教程/实例
  16. 微信企业号通过token和userId获取用户头像
  17. 【Duilib自定义控件】水平布局的滚动扩展布局,实现菜单的可滑动效果
  18. 【UEFI基础】BIOS学习路线图
  19. 2019海南大学计算机研究生分数线,2021海南大学研究生分数线一览表(含2019-2020历年复试)...
  20. 利用nodejs对接232接口电子秤

热门文章

  1. QT计算机控制进程,Qt 学习之路 2(69):进程
  2. 使用require.context实现前端工程自动化
  3. 获取cookie,删除cookie,添加cookie
  4. react获取state的值并更新使用
  5. 动态添加内容到百度搜索框里
  6. 小程序上传图本地片wx.chooseImage
  7. JavaScript的数据类型、null 和undefined、原始数据类型和引用数据类型等JavaScript基础知识总结
  8. 基于物品的协同过滤ItemCF的mapreduce实现
  9. deeplearning4j – 分布式DL开源项目
  10. TypeScript--es5中的类,继承,静态方法