前言
Spark是基于内存的计算框架,计算速度非常快。如果想要对接外部的数据,比如HDFS读取数据,需要事先搭建一个Hadoop 集群。Apache Spark是一个开源集群运算框架,相对于Hadoop的MapReduce会在运行完工作后将中介数据存放到磁盘中,Spark使用了存储器内运算技术,能在数据尚未写入硬盘时即在存储器内分析运算。
Spark 在存储器内运行程序的运算速度能做到比 Hadoop MapReduce 的运算速度快上 100 倍,即便是运行程序于硬盘时,Spark 也能快上 10 倍速度。Spark 允许用户将数据加载至集群存储器,并多次对其进行查询,非常适合用于机器学习算法。
使用 Spark 需要搭配集群管理员和分布式存储系统。
Spark 支持独立模式(本地 Spark 集群)、Hadoop YARN 或 Apache Mesos 的集群管理。在分布式存储方面,Spark 可以和 Alluxio, HDFS、 Cassandra 、OpenStack Swift 和 Amazon S3 等接口搭载。 Spark 也支持伪分布式(pseudo-distributed)本地模式,不过通常只用于开发或测试时以本机文件系统取代分布式存储系统。在这样的情况下,Spark 仅在一台机器上使用每个 CPU 核心运行程序。
Spark特点
快速高效
简洁易用
全栈式数据处理
兼容性强
1.快速高效
随着实时大数据应用越来越多,Hadoop 作为离线的高吞吐、低响应框架已不能满足这类需 求。Hadoop MapReduce 的 Job 将中间输出和结果存储在 HDFS 中,读写 HDFS 造成磁盘 IO 成为瓶颈。Spark 允许将中间输出和结果存储在内存中,节省了大量的磁盘 IO。Apache Spark 使用最先进的 DAG 调度程序,查询优化程序和物理执行引擎,实现批量和流式数据的高性 能。同时 Spark 自身的 DAG 执行引擎也支持数据在内存中的计算。Spark 官方声称性能比 Hadoop 快 100 倍。即便是内存不足需要磁盘 IO,其速度也是 Hadoop 的 10 倍以上。
2.简洁易用
Spark 现在支持 Java、Scala、Python 和 R 等编程语言编写应用程序,大大降低了使用者的门 槛。自带了 80 多个高等级操作符,允许在 Scala,Python,R 的 shell 中进行交互式查询,可 以非常方便的在这些 Shell 中使用 Spark 集群来验证解决问题的方法。
3.全栈式数据处理
Spark 提供了统一的解决方案。Spark 统一的解决方案非常具有吸引力,毕竟任何公司都想用 统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。
- 支持批处理(Spark Core)。
- 支持交互式查询(Spark SQL)。
- 支持流式计算(Spark Streaming)。
- 支持机器学习(Spark MLlib)。
- 支持图计算(Spark GraghX)。
- 支持 Python 操作--PySpark
- 支持 R 语言--SparkR
4.兼容性强
Spark 除了可以访问操作系统自身的本地文件系统和 HDFS 之外,还可 以访问 Cassandra、HBase、Hive、Tachyon 以及任何 Hadoop 的数据源。这极大地方便了已经 使用 HDFS、HBase 的用户顺利迁移到 Spark。
Spark学习路线
spark-core、复习hadoop生态、梳理术语、hadoopRDD 源码分析
spark-core、wordcount案例源码分析、图解
spark-core、集合操作API、pvuv分析、RDD源码分析
spark-core、聚合计算API、combineByKey、分区调优
spark-core、二次排序、分组取TopN、算子综合应用
spark-core、集群框架图解、角色功能介绍、官网学习 、搭建
spark-core、history服务、standaloneHA、资源调度参数
spark-core、基于yarn的集群搭建、配置、资源调度参数、优化jars
spark-core-源码、RpcEnv、standaloneMaster启动分析
spark-core-源码、Worker启动、sparksubmit提交、Driver启动
spark-core-源码、Application注册、Executor资源申请
spark-core-源码、sparkContext、DAGScheduler、stage划分
spark-core-源码、TaskScheduler、Executor运行Task、SparkEnv
spark-core-源码、MemoryManager、BlockManager
spark-core-源码、Dependency、SortShuffleManager
spark-core-源码、SortShuffleWriter、内存缓冲区buffer
spark-core-源码、SortShuffleWriter、内存缓冲区buffer
spark-core-源码、UnsafeShuffleWriter、Tungsten、Unsafe、堆外
spark-core-源码、ShuffleReader、Tracker、Scheduler完整调度
spark-core-源码、RDD持久化、检查点、广播变量、累加器
spark-core-源码、RDD持久化、检查点、广播变量、累加器
spark-sql、大数据中的SQL组成原理
spark-sql、datafram到dataset开发
spark-sql、整合hive的metastore搭建企业级数仓1
spark-sql、整合hive的metastore搭建企业级数仓2
spark-sql、复杂sql、函数、自定义函数、开窗over函数、OLAP
spark-sql-源码、sql解析、dataset到rdd的执行计划
spark-sql-源码、antlr4的sql解析、AST语法树的逻辑到物理转换
spark-sql-源码、逻辑计划、优化器、物理计划、转换RDD
spark-streaming、流式计算之微批计算原理及standalone
spark-streaming、api、ha、检查点、窗口等机制
spark-streaming、整合MQ-kafka开发
spark-streaming、源码分析、流式微批任务的调度原理
Spark学习导图