一、Spark基础知识梳理
1.Spark是什么?
2.Spark性能比Hadoop快原因分解:
3.Spark架构图: (2)Shark(Hive on Spark):Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口。可以理解为Shark On Spark,就是Hive On Hadoop,两者地位是一样的。ps:Shark可以通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析功能结合在一起(最大化RDD的重复使用)。 (3)Streaming(Spark):Spark Streaming是构建在Spark上的处理实时数据的框架。其基本原理是将Stream数据分成小的时间片段(几秒),以类似batch批处理的方式来处理小部分数据。
(4)RDD(Resilient Distributed Dataset,弹性分布式数据集):RDD是Spark操纵数据的一个高度抽象,即Spark所操作的数据集都是包装成RDD来进行操作的,例如Spark可以兼容处理Hadoop的HDFS数据文件,那么这个HDFS数据文件就是包装成Spark认识的RDD来完成数据抽取和处理的。RDD的一个英文定义是:RDDs are fault-tolerant, parallel data structures that let users explicitly persist intermediate results in memory, control their partitioning to optimize data placement, and manipulate them using a rich set of operators. 用我薄弱的英语能力翻译一下就是:RDD是一个能够让用户可以准确的将中间结果数据持久化到内存中的一个可用错的并行数据结构,可以控制(RDD数据集)分区,优化数据存储,并且有一组丰富的操作集可以操作这份数据。ps:RDD是Spark的一个核心抽象,Spark的数据操作都是基于RDD来完成。
(5)Map Reduce:MR 是Spark可以支撑的运算模式,比传统的Hadoop MR的性能更好,并且操作集更加丰富。Spark的MR计算引擎的架构图: ps:图中的FP不知道是什么,谁知道可以告诉我一下哈!
(6)Spark的运行模式:apache Mesos和YARN计算两套资源管理框架,Spark最初设计就是跑在这两个资源管理框架之上的,至于Spark的本地运行模式和独立运行模式则是方便了调试。(至于图中的EC2,应该属跑在亚马逊云端的资源管理引擎上的吧,我猜?)。YARN资源管理框架也是Hadoop2.0的产物,大大优化了传统Hadoop通过JobTracker和TaskTracker来调度计算任务的方式,使集群更加平台化,可以部署多中计算引擎,比如传统的Hadoop MR和Spark都可以跑在同一个集群上,YARN这类资源管理框架出现之前是做不到的。
(7)Spark数据的存储:Spark支持多种数据底层存储,这点比Hadoop支持的数据文件格式广泛的多。Spark可以兼容HDFS,Hbase,Amazon S3等多种数据集,将这些数据集封装成RDD进行操作。
4.Spark照比传统Hadoop MR的改进点:
5.Spark的适用场景: 二、Hadoop YARN 基础知识梳理
1.Yarn是什么:
简述:新一代的YARN容器框架,是传统的MR Hadoop容器框架的升级版本,之前的MR部署架构依赖于JobTracker和TaskTracker的交互模式,而新一代的YARN容器框架,则采用了ResourceManager和NodeManager的交互模式,更高层次的抽象和架构设计,是的YARN容器框架能够支撑多种计算引擎运行,包括传统的Hadoop MR和现在的比较新的SPARK。
2.Hadoop YARN产生的背景:
3.Hadoop 1.0到Hadoop 2.0(基于YARN)的演变:
4.以Yarn为核心的Hadoop2.0生态系统:
简述:图片简单明了,不多说了。
5.运行在YARN上的计算框架:
6.Spark On Yarn的调度管理:
7.传统MapReduce 在YARN上的调度: ps:梳理了一下Spark和YARN的基础概念,初步了解一下哈,细节部分有待深挖! |
|