Spark是用Scala语言中实现的,它将Scala用作其他应用程序框架,与Hadoop不同,Spark和Scala能够紧密继承,其中的Scala可以向操作本地集合对象一样轻松操作分布式数据集。
什么是Spark?
1.UC Berkeley AMP lab出品
2、类Hadoop的分布式数据分析平台
3、基于MapReduce的通用的并行计算框架
Spark和Hadoop MapReduce的比较
1、MapReduce是一种磁盘计算框架,非常适合数据密集型计算,而不适合迭代计算和交互式计算。
2、Spark是基于内存迭代的计算框架。适用于需要多次操作特定数据集的应用场合。
Spark作业原理
什么是RDD
RDD(Resilient Distributed Datasets)弹性分布式数据集,是分布式内存的一个抽象概念
RDD特性
RDD是只读、分区记录的集合。RDD支持容错。RDD不需要物化、RDD可以相互依赖。
假设用户提交一条SQL给Spark:
select * from table where id= “001”
假设数据量很大,在HDFS中有三个分片: