spark用到scala
一、spark产生背景
MapReduce 局限性
仅支持map和reduce两种语义操作
处理效率低,耗费时间长
不适合处理迭代计算、交互式处理、实时流处理等
更多的应用于大规模批处理场景
计算框架种类多,选型复杂
希望能简化技术选型,在一个统一的框架下,能够完成批处理等
二、spark工作原理
1、Spark简介
Spark提供多种运行模式
2、Spark特点
计算高效
通用易用
提供丰富开发api,支持scala、java、python 、R开发语言
集成批处理、流处理、交互式计算、机器学习算法、图计算
运行模式多样
3、Spark核心概念-RDD
RDD-弹性分布式数据集(Resilient Distributed Datasets)
Spark基于RDD进行计算
分布在集群中的只读对象集合(由多个Partition构成)
可以存储在磁盘或内存中
可以通过并行转换操作构造
失效后自动重构
4、RDD操作
1)Transformation
将Scala集合或者Hadoop数据集构造一个新的RDD
通过一有的RDD产生新的RDD
只记录转换关系,不触发计算
如Map、filter等。
2)Action