Spark设计理念与基本架构

Spark是一个通用的并行计算框架。

Hadoop MapReduce的缺陷:

对HDFS的频繁操作导致磁盘IO称为系统性能的瓶颈,因此只适用于离线数据处理。

Spark的特点:快速处理能力,Spark允许将中间输出和结果存储在内存中,避免了大量的磁盘I/O。同时Spark自身的DAG执行引擎也支持内存计算。

易于使用

支持查询

支持流式计算

可用性高

丰富的数据源支持

模块:Spark Core+Spark SQL +Spark Streaming+Mllib +GraphX

Spark编程模型:

1)用户使用Spark Context提供的API编写Driver application程序。

2)使用sc提交的用户应用程序,首先会使用Blockmanager和BroadcastManager将任务的hadoop配置进行光播。然后由DAGScheduler将任务转换为RDD,并组织成DAG,DAG还将被划分为不同的Stage。最后由TaskScheduler借助ActorSystem将任务提交给集群管理器。

3)集群资源管理器给任务分配资源,即将具体任务分配到Worker上,Worker创建Excutor来处理任务的运行。

Spark集群:

Cluster manager:集群资源管理器,主要负责资源的管理与分配给Worker。

Worker:Spark的工作节点。创建Excutor,将资源和任务进一步分配给Excutor,同步资源信息给Cluster Manager。

Excutor:执行计算任务。

Driver App:客户端应用程序。

你可能感兴趣的:(Spark设计理念与基本架构)