Spark的概念
一、对spark有总体的认识,包括生态、架构、原理和特性等;
1、Spark的概念:
Spark 是一个类于 Hadoop MapReduce 的通用并行框架, 由Scala语言实现的专门为大规模数据处理而设计的快速通用的技术分析引擎。
Spark的特点:快速、通用、易用、兼容性好。
Spark具备的能力:机器学习(ML库),实时流计算(Spark Streaming),SQL查询统计(Spark SQL),图表计算(GraphFrame)。
2、Spark与Hadoop的区别与联系:
(1)解决问题的方式不一样(Hadoop存储和计算,Spark处理不存储)(2)两者可合可分(Hadoop独自美丽,Spark要依赖分布式文件系统)
3、Spark相比HadoopMapRedue的优势:
(1) 中间结果输出(MapReduce磁盘,Spark内存)(2)数据格式和内存布局(3)执行策略(4) 任务调度的开销
4、Spark 的用途:
(1)推荐系统(2)快速查询系统(3)实时日志处理(4)定制广告系统(5)用户图计算
5、Spark的生态系统:
以Spark Core 为核心,利用Standalone、YARN 和Mesos 等资源调度管理,完成应用程序分析与处理。
Spark Core提供Spark最基础与最核心的功能,它的子框架包括Spark SQL,Spark Streaming,MLlib和GraphX。
Spark SQL是一种结构化的数据处理模块。它提供了一个称为DataFrame的编程抽象,也可以作为分布式SQL查询引擎。
Spark Streaming是Sprak API核心的一个超高通量的扩展,可以处理实时数据流并容错。
Mllib是Spark提供的可扩展的机器学习库,包含了一些通用的学习算法和工具,如分类、回归、聚类、协同过滤、降维,以及底层的优化原语等算法和工具。
GraphX在Graphs和Graph-parallel并行计算中是一个新的部分,GraphX是Spark上的分布式图形处理架构,可用于图表计算。
6、Spark 的构架
Driver APP:客户端驱动程序或者应用程序,用于将任务程序转换为RDD和DAG,并与Cluster Manager进行通信与调度;
Cluster Manager:Spark的集群管理器,主要负责资源的分配和管理;
Worker:Spark的工作节点,对于Spark应用程序而言,由Cluster Manager分配资源给Worker,获得资源的Worker将创建Executor,并将资源和任务进一步分配给Executor,然后同步资源信息给Cluster Manager;
Executor:Spark的任务执行单元,负责任务的执行以及和Worker、Driver App同步信息。
7、SparkContext核心原理——Spark分布式流计算
(1) 从代码构建DAG图。
(2) 将DAG划分为Stage。
(3) Stage生成作业。
(4) FinalStage提交任务集。
(5) TaskSets提交任务。
(6) Tasks执行任务。
(7) Results跟踪结果。
8、Spark 2.X
8.1 具有精简的API
(1)统一DataFrame和Dataset接口
(2)新增SparkSession接口
(3)为SparkSession提供全新的、工作流式配置
(4)提供更易用、更高效的计算接口
(5)Dataset中的聚合操作有全新的、改进的聚合接口
8.2 Spark作为编译器
其主要思想就是在运行时使用优化后的字节码。
8.3 智能化程度
判断题:
1、不仅仅Spark是基于内存的计算技术,Hadoop也是基于内存的计算,基本上所有的技术都基于内存进行计算。Spark只是把计算过程中间的结果缓存在内存中。
2、Spark只是在逻辑回归测试时候速度比Hadoop快了100倍,其他算法不一定。