问题导读
1.淘宝在Spark之上,主要做哪3个事情?
2.Spark给淘宝带来的好处是什么?
3.明风认为Spark 技术最适用于哪些应用场景?
4.淘宝在应用Spark 技术时遇到了哪些问题?是如何解决的?
5.你所了解的图计算框架是哪些?
在“2015 Spark技术峰会”,我们请到了阿里巴巴淘宝技术部高级技术专家黄明(明风)担任演讲嘉宾, 他将带来的分享主题为《图流合壁:基于Spark Streaming和GraphX的动态图计算》,下面是内容简介:
借助GraphX的强大的图计算能力,在小时级别内完成对TB数量级的图数据挖掘已经不是什么难事。然而,随着互联网电子商务的快速发展,各种各样的图场景应运而生,这些对图的计算也提出了更高的时效性要求。业务需要在一个大图的基础上,实时进行各种拓扑结构变换和关系修正,并尽可能快地在图的实时变化中感知和挖掘出有价值的信息。而Streaming作为Spark的天然的流式计算框架,能否和GraphX进行合理搭配,在图计算的速度和精度上都取得更好的效果呢?且让我们看看图流合璧,可以产生什么样的化学反应。 复制代码
黄明(明风)
阿里巴巴淘宝技术部高级技术专家
淘宝网数据挖掘与计算团队负责人,Spark早期研究者和布道者之一,带领团队使用Spark进行分布式机器学习,并基于GraphX的图计算上,进行了各种研究和探索。
以下为CSDN针对明风的会前采访实录: CSDN:首先请介绍下您自己,以及您在Spark 技术方面所做的工作。
明风: 我是淘宝技术部的数据挖掘与计算团队的Leader,我们团队使用基于Spark平台的各种机器学习算法,支持淘宝网业务。在Spark之上,我们主要做3个事情:
拥抱开源社区,对社区的各个Feature和PR选择性地进行跟进和贡献,包括关键性的Bug Fix。同时,保证阿里巴巴的内部版本和社区版本保持同步性和一致性。 针对淘宝的大数据和应用场景,选择合适的Spark组件进行使用,主要MLLib、GraphX和Streaming三大块,进行模型训练和生产应用。 打造Spark周边的生产环境,包括MLStudio调度平台,使得Spark在阿里巴巴的应用更具推广性,可以满足大部分算法工程师和数据科学家的需求。
CSDN:您所在的企业是如何使用Spark 技术的?带来了哪些好处?
明风:Spark带来的好处主要有:
性能 :基于Spark的机器学习算法性能毫无疑问的超越了普通MR。稳定性 :良好的DAG和Checkpoint机制使其在面对复杂多次的机器学习算法时,也能从容的在发生故障时从最近的点进行恢复。功能 :丰富的算子和功能使得Spark面对各种传统的复杂机器学习算法时,在大数据量下,只要模型有并行可能性,就能进行开发,并达到性能要求。
简单来说,Spark为算法工程师和神经科学家屏蔽了底层各种复杂的分布式系统的难题,使得他们可以专注在模型设计和算法优化之上,加上支持Python语言,这更是如虎添翼。
CSDN:您认为Spark 技术最适用于哪些应用场景?
明风:基本上大部分的机器学习算法,Spark现在都能很好的满足,包括分类、聚类、特征工程……;加上GraphX,可以支持图算法;Streaming,可以支持online learning;基本覆盖了大部分的需求。但是由于天生的理念和架构,Spark不适合深度学习。
CSDN:企业在应用Spark 技术时,需要做哪些改变吗?企业如果想快速应用Spark 应该如何去做?
明风:企业如果之前有MR和Hive的积累,需要把之前的计算Job进行迁移,数据可以复用,需要有一定的学习成本。如果想快速应用Spark,可以考虑阿里云的Spark on ECS。
CSDN:您所在的企业在应用Spark 技术时遇到了哪些问题?是如何解决的?
明风:Spark作为新兴技术,Databricks公司有一帮很优秀人才,但是缺乏真实的大数据,所以在这种情况下设计出来的系统,虽然很优美而强大,但是在大数据的考验下,会不可避免地出现一些坑。需要Spark开发人员和算法工程师有很好的沟通和协作,然后进行快速而精准的排查,找到Bug并且修复。所以优秀的人才很关键,我们也希望更多这样的人才加入我们团队。
CSDN:作为当前流行的大数据处理技术,您认为Spark 还有哪些方面需要改进?
明风:Spark在面对超高维度的模型训练时,目前的Broadcast分发机制还是有不少问题的,最近Parameter Server风头不错,就是利用了这个软肋,但是如果从分布式计算系统层面进行考虑的话,这个并非像深度学习一样,是Spark无法弥补的软肋,这个是可以Patch的,所以我们团队最近也在PS on Spark的Feature上进行了一些投入,希望能够尽快试用,验证OK后发布。
CSDN:您在本次演讲中将分享哪些话题?
明风:我的演讲主题是《图流合璧——基于Spark Streaming和GraphX的动态图计算》,下面是演讲内容简介:
借助GraphX的强大的图计算能力,在小时级别内,完成对TB数量级的图数据挖掘已经不是什么难事。但是随着互联网电子商务的快速发展,各种各样的图场景应运而生,这些对图的计算,也提出了更高的时效性要求。业务需要在一个大图的基础上,实时进行各种拓扑结构变换和关系修正,并尽可能快地在图的实时变化中,感知和挖掘出有价值的信息。而Streaming作为Spark的天然的流式计算框架,能否和GraphX进行合理搭配,在图计算的速度和精度上,都取得更好的效果呢?且让我们看看图流合璧,可以产生什么样的化学反应 复制代码
CSDN:哪些听众最应该了解这些话题?您所分享的主题可以帮助听众解决哪些问题?
明风:对动态图计算有需求的听众,都可以听听这个话题。图计算其实是个挺古老的话题了,基于大数据的图计算,最近几年有不少框架涌现,包括GraphLab,Spark GraphX……,某种程度上都可以解决批量计算的问题,但是怎么样动态地对图的显性结构(点和边)进行修改,以及对图的隐性结构进行修正,只有将流计算和图计算进行合理的混用才能达到最佳效果。Spark刚好这2个Component都具备,因此是进行这方面尝试的最好平台,我们基于这个理念,对动态社区发现进行了尝试,得到了不错的效果。
CSDN:您有什么需要对读者补充的吗?
明风:Spark的真正火爆是从2014年1月份开始,其实到现在也才1年多,它还处在快速成长期中,有着强大的生命力。作为一个强大的机器学习平台,我们也会让它可以轻松地部署和应用到阿里云虚拟主机上,能够快速地给更多的机器学习算法工程师提供便利,带动整个业界机器学习和人工智能的发展。