云计算环境下的信息资源集成与服务
上QQ阅读APP看书,第一时间看更新

2.5.1 数据流与控制流

考虑到信息资源的碎片化过程和集成化处理中的计算模式的多样性(如流计算、用户交互、图计算等),本平台推荐采用基于Spark和YARN的集群管理技术,而不是Hadoop的集群管理技术。从Spark和YARN的集成角度看,Spark Driver(以下简称Driver)可以部署在YARN的AM,也可以运行在YARN的客户端。但是,从云计算环境下的信息资源集成与服务,尤其是碎片化阅读与传播角度看,用户往往需要的是瘦客户端,因此,本平台推荐将Driver部署在YARN的AM上,而不是部署在客户端上。图2-16给出了本平台中的主要数据流与控制流的设计方案。

图2-16 本平台中的主要数据流与控制流的设计方案

(1)用户通过自己的客户端向YARN的RM(资源管理器)提交数据和程序。在此,用户提交的数据可以是完整资源(待碎片化处理的信息资源)、碎片信息资源(待集成处理的信息资源);用户提交的程序可以是以下代码:

•复杂的碎片化处理或集成化处理代码。

•简单的碎片化处理或集成化处理代码,如处理类型标识。

•无程序代码:按此云平台的默认处理代码(先碎片化处理,后集成处理)。

(2)YARN的RM选择一个YARN的NM(节点管理器),并将此NM指定为YARN的AM。

(3)NM启动AM,并完成作业的初始化工作。

(4)AM采用Spark Context创建一个Driver,Driver的本质是运行main函数并且创建Spark Context的程序。Driver采用基于DAG的执行引擎,根据DAG中RDD之间的世系关系(lineage)进一步将用户提交的作业转换为Stages以及更小粒度的任务。

(5)Driver向YARN的RM申请运行任务需要的资源。

(6)YARN的RM为任务分配满足要求的NM,并在NM上创建Spark Executor(以下简称Executor)。

(7)已创建的Executor向Driver注册自己的信息。

(8)Driver将应用程序的代码和文件传送给对应的Executor。

(9)Executor运行任务,完成后将结果返回给Driver或者写入HDFS或其他介质朝乐门.数据科学理论与实践[M].北京:清华大学出版社,2017.