Spark

Spark是一种基于内存的大数据并行处理框架。

特点:
  • 速度快。数据保存到内存,使用DAG调度程序。
  • 易用。支持scala,java,python等语言编写程序。
  • 通用。结合Spark SQL,Spark Streaming,Spark Core,MLlib,Graphx无缝集成。
  • 到处运行。Spark可以运行在hadoop,yarn,能够读取HDFS,Hbase。
Spark Core:

spark生态圈核心,是一个分布式大数据处理框架。
1.多种并行模式
2.提供DAG
3.引入RDD

Spark Streaming:

对实时数据进行高吞吐,高容错的流处理系统。
1.动态负载均衡,划分小数据。
2.快速故障恢复,某节点故障。
3.批处理,流处理,交互分析一体。

处理流程

1.将数据按时间间隔分批,也就是离散化。(DStream)
2.每一段都通过Spark(此时理解成一个队列)转换成RDD。
3.对RDD进行处理。
avatar

Spark SQL:

主要用于结构化数据处理。
前身是Shark,Shark即Hive on Spark。Shark依赖Hive,MR,存在瓶颈。
数据集有:RDD,DataFram
Spark MLlib:机器学习组件。
Spark GraphX:分布式图计算框架。

Spark运行架构

avatar
1.Driver和master连接并申请资源。
2.master进行资源调度。
3.master跟Worker进行RPC通信,让Worker启动Executor。
4.启动Executor。
5.Executor进行通信。
6.RDD依赖生成DAG图。
7.RDD触发Action,从后往前,宽依赖就shuffe切分stage。由ADG Scheduler完成。每个stage里有一个或多个任务,每个stage是一个调度阶段。
8.Task Scheduler接收来自DAG Scheduler的任务集,以任务的形式一个个分发到Woker的Executor中运行。(序列化)
9.Executor接收到Task,将Task反序列化,执行任务。

Spark支持的文件格式

avatar

Spark1和Spark2版本区别

  Spark1和Spark2区别
  1 Spark2 Apache Spark作为编译器:增加新的引擎Tungsten执行引擎,比Spark1快10倍。
  2 ml做了很大的改进,支持协同过滤。
  3 Spark2加了SparkSession把Spark的SQLcontext和hiveContext整合,dataFrame与dataset整合,统一采用dataset。
  4 做流的方式,例如设置10秒钟一批,5秒钟处理。
  5 R语言API加入了很多机器学习的算法。