什么是spark
spark是一种通用的大数据计算框架
spark包含了
spark core用于离线计算
spark sql用于交互式查询
spark streaming用于实时流式计算
spark mllib机器学习
spark graphx用于图计算
Spark基本工作原理
1分布式 2 主要基于内存(少数情况基于磁盘)3迭代时计算
说明:spark on yarn 这种模式需要注意点:
1,spark任务运行在yarn之上,有yarn进行资源管理和调度,spark只负责任务调度和计算
2,不需要配置和启动spark集群
3,只需要在提交任务的节点上安装并配置spark on yarn 模式。
说明:standalone 这种模式需要注意点:
1,spark任务运行在spark集群之上,由spark来进行资源调度管理,同时还负责任务的计算和调度
2,需要配置和启动spark集群
spark特点
快 易用 通用 兼容性
Spark计算模型VS MapReduce计算模式对比:
Mr这种计算模型比较固定,只有两个阶段,map阶段和reduce阶段,这两个阶段结束后,任务就结束了.意味着我们的操作有限,只有map阶段和reduce阶段,也同时意味着可能需要多个mr任务才能处理完job
Spark他是迭代式计算,一个阶段结束后,后面可以有N个阶段,直到计算任务完成,也就意味着我们可以做更多的操作,这就是spark比计算模式比Mr强大的地方
RDD:弹性的,分布式的,数据集
Rdd在逻辑上可以看出是代表一个HDFS上的文件,它分为多个分区,散落在spark的多个节点上
Spark有选择性的在内存和硬盘之间的这种权衡机制就是RDD的弹性特点所在
Spark的RDD以及其特点
1、RDD是Spark提供的核心抽象,即弹性分布式数据集。
2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作。(分布式数据集)
3、RDD通常通过Hadoop上的文件,即HDFS文件或者Hive表,来进行创建;有时也可以通过应用程序中的集合来创建。
4、RDD最重要的特性就是,提供了容错性,可以自动从节点失败中恢复过来。即如果某个节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己的数据来源重新计算该partition。这一切对使用者是透明的。
5、RDD的数据默认情况下存放在内存中的,但是在内存资源不足时,Spark会自动将RDD数据写入磁盘。(弹性)
什么是Spark开发
1、核心开发:离线批处理 / 延迟性的交互式数据处理
2、SQL查询:底层都是RDD和计算操作
3、实时计算:底层都是RDD和计算操作
4 机器学习 5图计算
(核心编程原理)
1创建初始化RDD,
2,对初始的RDD进行转换操作形成新的RDD,然后在对新的RDD再次进行操作,直至操作计算完成
3 将最后的RDD的数据保存到某种介质中(hdfs,hive,mysql)