分享

Spark入门个人经验总结:架构及运行机制【短小精炼】


问题导读

1.spark有哪些基本概念?
2.spark运行原理是什么?
3.SparkContext的作用是什么?








Spark是基于内存计算的大数据并行计算框架。因为其基于内存计算,较Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性。从2009年诞生于AMPLab到现在已经成为Apache顶级开源项目,并成功应用于商业集群中。学习Spark就需要了解其架构及运行机制。

Spark架构Spark架构使用了分布式计算中master-slave模型,master是集群中含有master进程的节点,slave是集群中含有worker进程的节点。
master作为整个集群的控制器,负责整个集群的正常运行。
worker相当于计算节点,接受主节点命令与状态汇报。
executor负责任务的执行。
client作为用户的客户端负责提交应用。
driver负责控制一个应用的执行。

下图为Spark架构图


20150204144806528.png





Spark集群部署后,需要在主节点和从节点分别启动master进程和worker进程来控制集群。在一个应用执行中,driver是应用逻辑执行的起点,负责作业的调度,即Task任务的分发,而多个worker用来管理计算节点和创建executor并行处理任务。在执行阶段,driver会将task和其依赖的文件传递给worker机器,同时executor对相应数据分区的任务进行处理。


SparkContext: 整个应用的上下文,控制应用的生命周期。
RDD: Spark的基本计算单元,一组RDD可执行的有向无环图RDD Graph。
DAGScheduler: 根据作业构建基于Stage的DAG,并提交给Stage的TaskScheduler。
TaskScheduler: 将任务分给executor执行。

SparkEnv: 线程级别的上下文,存储运行时的重要组件的引用。


Spark的运行流程: Client提交应用,master找到一个worker启动driver,driver向master请求资源,之后将应用转化为RDD Graph,再由DAGScheduler将RDD Graph转换为stage的DAG提交给TaskScheduler,由TaskScheduler提交任务给executor。



欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(1)人评论

跳转到指定楼层
quenlang 发表于 2015-5-11 15:50:24
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条