首页 理论教育 淘宝Spark平台的推荐系统架构与开发流程

淘宝Spark平台的推荐系统架构与开发流程

时间:2023-06-21 理论教育 版权反馈
【摘要】:根据实验,淘宝最后选择了SparkOnYARN的解决方案。图10-1 淘宝的Spark之路由图中可以看出,淘宝一直在完善自己的Spark平台,他们的Spark平台已经越来越成熟。淘宝内部Spark应用开发流程如图10-3所示。图10-3 淘宝Spark应用开发流程淘宝推荐系统,如图10-4所示,综合运用了Spark、SparkMLlib和Sparkstreaming,将它们组成包含离线、近线和在线的立体三维分析系统,覆盖了淘宝的绝大部分业务。图10-4 淘宝推荐系统架构图10-4 淘宝推荐系统架构

淘宝Spark平台的推荐系统架构与开发流程

从上述内容可以看出,Hadoop在数据挖掘过程中遇到了很多问题,所以需要寻求更好的平台来解决数据挖掘问题。

根据实验,淘宝最后选择了SparkOnYARN的解决方案。为什么淘宝最后的选择是Spark呢?有如下几点原因。

(1)RDD

Spark使用抽象的弹性分布式数据RDD,它具有基于内存计算,能快速迭代,支持DAG的特点,适合数据挖掘、机器学习需要迭代的作业。

(2)Scala

Scala支持函数式编程,精简灵活,有Actor模型,支持高并发,适合分布式计算

(3)Hadoop

不仅支持MapReduce编程,还提供更多的方法(如join,filter,flatmap等),此外能与Hadoop生态融合,有类似Hive的SparkSQL和能支持从HDFS存取数据,可以与Hadoop混合应用。

淘宝在较早的时候已经开始了Spark的研究,下面来了解一下淘宝的Spark之路,如图10-1[6]所示。

978-7-111-52928-6-Part04-10.jpg

图10-1 淘宝的Spark之路

由图中可以看出,淘宝一直在完善自己的Spark平台,他们的Spark平台已经越来越成熟。下面来了解一下淘宝SparkOnYARN的框架图,如图10-2所示。(www.xing528.com)

978-7-111-52928-6-Part04-11.jpg

图10-2 Spark On YARN框架图

从图中可以看出Spark on YARN发起一个请求,会找到一个Node Manager,然后会启动Application Master,AppMaster启动完毕,会向ResourceManager请求Container,ResourceManager会找到Node Manager机器启动Container,作为Executor容器,真正的交互是在ContainerBackend和YarnClusterManager之间进行的。YARN作为资源管理器,隔离了计算调度和资源调度功能,方便了YARN上不同的应用架构共享存储资源。

了解了淘宝SparkonYARN框架的一个运行流程,下面来继续了解淘宝内部Spark应用的开发流程。

淘宝内部Spark应用开发流程如图10-3所示。

978-7-111-52928-6-Part04-12.jpg

图10-3 淘宝Spark应用开发流程

淘宝推荐系统,如图10-4所示,综合运用了Spark、SparkMLlib和Sparkstreaming,将它们组成包含离线、近线和在线的立体三维分析系统,覆盖了淘宝的绝大部分业务。

978-7-111-52928-6-Part04-13.jpg

图10-4 淘宝推荐系统架构

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈