淘宝明风:基于Graphx的图计算实践分享

标签:大数据淘宝Graphx

访客:65745  发表于:2014-04-20 14:14:50

摘要:面对淘宝的海量用户如何进行高效的关系构建?Graphx是否能在Spark一栈式数据解决方案中胜任至关重要的图计算一角?开发时如何提升性能?计算的结果如何高效应用?

【人物简介】

@明风Andy

淘宝技术部数据挖掘与计算团队负责人,带领团队构建了国内第一个100台规模的Spark on Yarn集群,并基于Spark进行大量机器学习、实时计算和图计算的先行尝试,并将实践成果快速应用于淘宝网数据相关的业务和产品。

淘宝明风:基于Graphx的图计算实践分享

- 什么原因吸引你钻研Spark技术?

研究Spark是从2012年的0.4版本开始的,当时Hadoop和Hive在阿里的成熟度已经达到了一个很高的程度,但是我感觉它们只解决了BI的问题,对于数据挖掘和机器学习算法,它们不能给出很好的方案,我看到有些做搜索和广告的同学,用Mahout或者其它自己写的MR,很慢很吃力的解决复杂的机器学习问题。我感觉这个不是一个正确的方向!所以我开始寻找其它产品和方案。这个时候Spark出现了,当时只有最简单的2个LR和KMeans方法,但是通过它们,我感觉到了Spark的潜力,我认为这是一个正确的方向。于是我就开始在这个方向上做一些研究,并将其用于淘宝的推荐相关算法上。目前来看,这个决定是挺正确的。

- 对于解决哪些问题Spark独具优势?

Spark现在包含了挺多的子模块,功能很丰富。但是对于我来看,它本质上是为了解决这3类问题:

a. 多次迭代的机器学习算法

b. 高计算复杂度的算法

c. 准实时海量数据计算

- 目前企业应用Spark最大的困难是什么?

对于企业来说,搭建Spark配合现有平台,这个过程还是有一定搭建成本的,需要有比较专业的团队维护。

另外对于普通的算法开发人员,Spark的学习成本还是有点高,Scala的切入不是很容易,入门曲线陡峭。不过由于Spark已经支持Java和Python,所以相信这个问题会越来越弱化。

- 根据您的了解,目前Spark发展的情况如何?

目前Spark的发展不错,由于其高速的计算能力,强大的多种功能和一栈式解决方案,因此在美国和中国都有不少的用户群。但是从整体上来看,还是要在降低用户开发和调试成本上花更多的精力。由于Spark是并发异步模型,而且支持内存计算,这样对内存消耗会很大,编程难度较高。一旦出错,如何快速准确的找到错误,并且定位原因,找到最佳的解决方案,对于开发者来说是非常迫切的需求。一旦解决了这个问题,Spark在发展上可以迎来一个新的高峰。

- 请谈谈你在这次大会上即将分享的话题

我这次演讲主题是基于Spark Graphx的大规模用户图计算和应用。图算法是很多复杂机器学习算法的基础,在单机时代有很多经典的案例,解决了很多问题,尤其是图谱相关的问题,包括关系构建、社区发现、属性传播等等。对于用户群分析和发现,有很重要的作用。在大数据时代,图的规模大到一定程度后,单机就很难解决大规模的图计算了。目前比较成熟的方案有Graphx和GraphLab。我们基于Graphx进行了一些尝试,并解决了生产的问题,当然其中遇到了很多的坑,所以在此和大家分享一下,希望能够让大家少走一些弯路,尽快能够享受基于Graphx的图计算。

- 哪些听众最应该了解这些话题,这个话题可以帮助听众解决哪些问题?

对“用户之间的关系发现”有兴趣和需求的听众,都可以听听这个话题,包括兴趣图谱和关系图谱,以及基于图的推荐。这个话题可以帮助听众在如何用图来思考用户关系有一定的帮助,并且能够了解如何用Graphx进行大规模数据的图算法开发和调试。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");