Spark技术从之前和当前的技术路线上看不是为了替代Hadoop,更多的是作为Hadoop生态圈(广义的Hadoop)中的重要一员来存在和发展的。
首先我们知道Hadoop(狭义的Hadoop)有几个重点技术HDFS、MR(MapReduce), YARN。
这几个技术分别对应分布式文件系统(负责存储), 分布式计算框架(负责计算), 分布式资源调度框架(负责资源调度)。
我们再来看Spark的技术体系 ,主要分为以下:
- Spark Core :提供核心框架和通用API接口等,如RDD等基础数据结构;
- Spark SQL : 提供结构化数据处理的能力, 分布式的类SQL查询引擎;
- Streaming: 提供流式数据处理能力;
- MLLib: 提供分布式机器学习常用的算法包;
- GraphX : 提供图计算能力
从上面Spark的生态系统看,Spark主要是提供各种数据计算能力的(官方称之为全栈计算框架),本身并不过多涉足存储层和调度层(尽管它自身提供了一个调度器),它的设计是兼容流行的存储层和调度层。也就是说, Spark的存储层不仅可以对接Hadoop HDFS,也可以对接Amazon S2; 调度层不仅可以对接Hadoop YARN也可以对接(Apache Mesos)。
因此,我们可以说Spark更多的是补充Hadoop MR单一批处理计算能力, 而不是完全替代Hadoop的。
【关注ABC(A:人工智能;B:BigData; C: CloudComputing)技术的攻城狮,Age:10+】