Spark运行架构特点

1.1.1.Executor进程专属

每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行tasks
Spark Application不能跨应用程序共享数据,除非将数据写入到外部存储系统。

如图所示:

 

IMG_274

 

1.1.2. 支持多种资源管理器

Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了,
Spark支持资源管理器包含: StandaloneOn MesosOn YARNOr On EC2

如图所示:

 

IMG_275

 

1.1.3. Job提交就近原则

提交SparkContextClient应该靠近Worker节点(运行Executor的节点),最好是在同一个Rack(机架)里,
因为Spark Application运行过程中SparkContextExecutor之间有大量的信息交换;
如果想在远程集群中运行,最好使用RPCSparkContext提交给集群,不要远离Worker运行SparkContext

如图所示:

 

IMG_276

 

1.1.4. 移动程序而非移动数据的原则执行

Task采用了数据本地性和推测执行的优化机制。
关键方法:taskIdToLocationsgetPreferedLocations

如图所示:

 

IMG_277



猜你喜欢

转载自www.cnblogs.com/TiePiHeTao/p/b3f45c77d5fb7caca7b57b866662308d.html