Spark框架(入门)
来源:深海探测器007     阅读:922
微上宝科技
发布于 2018-08-27 22:56
查看主页

Spark 是什么吗?

Spark是一个使用来实现快速而通使用的集群计算的平台。扩展了广泛用的MapReduce计算模型,而且高效地支持更多的计算模式,包括交互式查询和流解决。在解决大规模数据集的时候,速度是非常重要的。Spark的一个重要特点就是能够在内存中计算,因此更快。即便在磁盘上进行的复杂计算,Spark仍然比MapReduce更加高效。

Spark运行模式

  • local:主要使用于开发调试Spark应使用程序
  • Standlone:利使用Spark自带的资源管理与调度器运行Spark集群,采使用Master/Slave结构,为处理单点故障,可以采使用Xookeeper实现高可靠(High Availability, HA)
  • Apache Mesos:运行在著名的Mesos资源管理框架基础之上,该集群运行模式将资源管理管理交给Mesos,Spark只负责运行任务调度和计算.
  • Hadoop YARN:集群运行在Yarn资源管理器上,资源管理交给YARN,Spark只负责进行任务调度和计算。Spark运行模式中Hadoop YARN的集群方式最为常使用,前面一章关于Spark集群搭建就是采使用的YARN模式。

Spark组件(Components)

每个Spark应使用都由一个驱动器程序(drive program)来发起集群上的各种并行操作。驱动器程序包含应使用的main函数,驱动器负责创立SparkContext,SparkContext可以与不同种类的集群资源管理器(Cluster Manager),例如Hadoop YARN,Mesos进行通信,获取到集群进行所需的资源后,SparkContext将

得到集群中工作节点(Worker Node)上对应的Executor(不同的Spark程序有不同的Executor,他们之间是相互独立的进程,Executor为应使用程序提供分布式计算以及数据存储功能),之后SparkContext将应使用程序代码发送到各Executor,最后将任务(Task)分配给executors执行。

  • ClusterManager:在Standalone模式中即为Master节点(主节点),控制整个集群,监控Worker.在YARN中为ResourceManager。
  • Worker:从节点,负责控制计算节点,启动Executor或者Driver。在YARN模式中为NodeManager,负责计算节点的控制。
  • Driver:运行Application的main()函数并创立SparkContect。
  • Executor:执行器,在worker node上执行任务的组件、使用于启动线程池运行任务。每个Application拥有独立的一组Executor。
  • SparkContext:整个应使用的上下文,控制应使用的生命周期。
  • RDD:Spark的计算单元,一组RDD可形成执行的有向无环图RDD Graph。
  • DAG Scheduler:根据作业(Job)构建基于Stage的DAG,并提交Stage给TaskScheduler。
  • TaskScheduler:将任务(Task)分发给Executor。
  • SparkEnv:线程级别的上下文,存储运行时的重要组件的引使用。
  • SparkEnv内构建并包含如下少量重要组件的引使用。
Spark框架(入门)

Spark 整体流程

1、Client提交应使用。

2、Master找到一个Worker启动Driver

3、Driver向Master或者者资源管理器申请资源,之后将应使用转化为RDD Graph

4、再由DAGSchedule将RDD Graph转化为Stage的有向无环图提交给TaskSchedule。

5、再由TaskSchedule提交任务给Executor执行。

6、其它组件协同工作,确保整个应使用顺利执行。

Spark框架(入门)

Spark on Yarn流程

1、基于YARN的Spark作业首先由用户端生成作业信息,提交给ResourceManager。

2、ResourceManager在某一NodeManager汇报时把AppMaster分配给NodeManager。

3、NodeManager启动SparkAppMaster。

4、SparkAppMastere启动后初始化而后向ResourceManager申请资源。

5、申请到资源后,SparkAppMaster通过RPC让NodeManager启动相应的SparkExecutor。

1、SparkExecutor向SparkAppMaster汇报并完成相应的任务。

7、SparkClient会通过AppMaster获取作业运行状态。

Spark框架(入门)

ps:各位读者觉着有使用可以加关注,后续还会有更多的技术文章,供大家一起交流学习。

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 数据库
相关推荐
深度剖析|初学者应该如何学习前台?
SpingCloud Gateway网关核心概念和原理
巧记工具相关英语单词
小说阅读器的设计和实现
Apache Kafka 从 0.7 到 1.0:那些年我们踩过的坑
首页
搜索
订单
购物车
我的