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:客户端应用程序。
网友评论