【图解大数据技术】Spark
Spark简介
Spark与MapReduce一样,也是大数据计算框架。Spark相比MapReduce拥有更快的执行速度和更低的编程复杂度。
Spark包括以下几个模块:
- Spark Core:封装了Spark的基本功能,比如RDD、任务调度等。
- Spark SQL:Spark SQL可以处理结构化数据,当我们遇到结构化数据的计算时,可以使用Spark SQL,它允许我们把数据集映射为表结构,然后像操作关系型数据库的库表一样操作Spark SQL的表。
- Spark Streaming:Spark Streaming可以做流式的准实时计算,比如可以监听kafka的消息做实时计算。
- MLib:提供了机器学习的程序库。
- GraphX:用于图计算的API。
Spark支持以下几种部署模式:
- Standalone
- Yarn
- Mesos
- Kubernetes
Spark是支持使用Yarn做资源调度的,因此Spark是可以替代掉MapReduce的。
而Mesos和Yarn一样,也是一个分布式资源管理器。
RDD
RDD(Resilient Distributed Dataset)的意思是弹性分布式数据集,本质上就是数据集,是Spark中最基本的数据抽象。
RDD是对不同存储节点的分片数据组成的数据集的抽象,RDD中每个Partition都指向存储集群中某个节点上的一个数据分片,当然我们也可以手动指定RDD的分区数。
Spark的计算就是对RDD的计算,Spark的计算是基于RDD进行的,一个RDD经过若干转换操作函数,转换操作本身返回的也是RDD,直到遇到action操作,则生成数据结果集返回。
RDD的转换操作和action操作包括以下这些: