Spark简介
1.功能
2.历史
3.BDAS生态系统
4.系统局限性及优势
5.Spark程序实例
6.弹性分布式数据集RDD
7.RDD两类基本函数
1.Spark是基于内存计算的大数据分布计算框架,具有实时性,高容错性,高可伸缩性等优点,并且支持多计算范式。
2.2014年成为Apache基金会顶级项目
3.Spark具有配套的BDAS生态系统 如下图所示
Mesos:资源管理与任务调度器
HDFS:分布式文件存储系统
tachyon:分布式内存文件系统,用于缓存数据,快速查询。
Spark:核心计算引擎
Spark Streaming/SQL、Graphx、MLlib:分别为Spark提供流式计算和数据库访问服务、图计算(比如PR算法)以及机器学习函数。
4.Spark的一些优缺点
Advantages:
a.提供计算范式的支持
b.易用性和兼容性(核心代码量少,可以在JAVA、Python等语言环境中实现)
c.社区活跃度高,Contributor数量多
Disadvantages:
a.重复开发
b.资源管理与分配问题
c.系统组合问题?
5.Spark程序实例
a.输入构造RDD——>b.转换Transformation——>c.输出Action
|<-数据结构->| + |<--------算法(两类RDD函数)------------->|
val file = sc.textFile("hdfs://XXX") //a
val errors = file.filter(line=>line.contans("ERROR")) //b
val errors.count() //c
6.弹性分布式数据集RDD
分布式数组,将切分数据成块,分布在集群中不同节点,通过RDD进行管理,有以下6个属性
a.partition(数据块列表)
b.compute(计算类型)
c.denpendencies(与其他RDD联系)
d.partitoner(数据分区算法?)
e.preferredLocations(数据块IP)
7.RDD两种基本函数
a.Transformation操作是延迟计算的(Map,group by等)
b.Action算子触发Spark提交Job,并输出系统(reduce、collect、count等)