设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

尹绪森:打开圈子拥抱变化谈Spark玩家的自我修养

2014-3-26 11:09| 发布者: joejoe0332| 查看: 4222| 评论: 0|原作者: 刘亚琼|来自: CSDN

摘要: 在Spark技术峰会召开前夕,记者和本次Spark峰会的演讲嘉宾尹绪森做了一次简单的沟通,他就Spark技术优势、Spark技术发展做了简要的回答……

  2014年4月19日“中国Spark技术峰会”(Spark Summit China 2014)将在北京召开,国内外Apache Spark社区成员和企业用户将首次齐聚北京。AMPLab、Databricks、Intel、淘宝、网易等公司的Spark贡献者及一线开发者将分享他们在生产环境中的Spark项目经验和最佳实践方案。


  在Spark技术峰会召开前夕,记者和本次Spark峰会的演讲嘉宾尹绪森做了一次简单的沟通,他就Spark技术优势、Spark技术发展做了简要的回答,同时他表示更多的内容将会在4月19日“中国Spark技术峰会”和大家分享!


尹绪森,Intel工程师   @尹绪森

熟悉并热爱机器学习相关内容,对自然语言处理、推荐系统等有所涉猎。目前致力于机器学习算法并行、凸显优化层面的算法优化问题,以及大数据平台性能调优。对Spark、Mahout、GraphLab等开源项目有所尝试和理解,并希望从优化层向下,系统层向上对并行算法及平台做出贡献。



以下是记者采访原文:


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

我是典型的“师父领进门”。在吴甘沙老师的带领下,在Intel研究院和一帮挚爱技术的小伙伴们钻研到现在。我个人是比较相信“黑天鹅”的说法的,人生是由一连串的随机事件组合起来的,从去年迷茫地进入Intel研究院,到接触Spark以及有机会参加这次峰会都是曾未可知的。如果放在一年前,我怎么都不会想到有一天自己会跟Spark有所关联。我的专业是机器学习,从研究生生涯刚开始就立志做一名热爱数学的“机器学习者”,因为机器学习不仅很有趣,而且看起来也高大上。做模型发paper是我的夙愿。去年到Intel之前一直在犹豫,不清楚一个梦想中的“机器学习者”到Intel能做什么。实际上,回头来看能做的实在太多了,Intel研究院提供了一个绝对大的舞台。
甘沙老师和小伙伴们都是扎实的系统专家,一起讨论的时候各种听不懂,导致我压力特别大。我想是该改变自己的时候了,应该拥抱变化,而不是把自己陷入到自己的小圈子内, 这是一种“自掘坟墓”的玩法。随后玩命的看了各种系统方面的paper,写Spark程序,读Spark源码,看Scala书籍,跟小伙伴们激烈的争辩和讨论,慢慢感到自己对Spark运行模式有了一丝了解。尤其是看过James Iry的Monads are Elephants系列博客之后,感觉愈来愈明晰了。
技术方面,Spark最吸引我的地方有三处: 一是新,新就意味着还不成熟,存在很多问题,这个时候恰是切入的好时机。有很多未完成的工作,以及大数据栈整体性能进行发掘。实际上,现阶段我主要做的就是如何从Spark大数据栈整体来优化机器学习算法的实现。这样既能做机器学习,又能玩系统,每天都很开心;二是RDD实现之优雅。我更愿意把RDD当做一种“分布式+函数式的编程语言”, 而且我认为它会向这个方向继续前进, 其实现策略之精妙, 让人惊叹不已;三是Scala, 不论别人怎么看待这种编程语言, 我感觉Scala是我用的最顺的一种语言,在很多时候我都感觉不到“语法”的存在,很顺畅的写出程序,它就是你要的结果。简洁明晰,极富表达力。最重要的是,正如Martin所期望的,Scala带给我们的是思维的改变。


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

RDD的表现力让Spark成为多面手。这一点上与Scala的表现力让Spark开发简洁明快是一个道理,这也就是我为什么更倾向于把RDD看成一种分布式编程语言。 Spark 甫一出道,便以多迭代,内存计算为主打,自然免不了进军机器学习领域。Spark 对于程序员,尤其是机器学习者来说,简直是福音一样的存在。轻量级的框架设计,让多迭代逻辑不必游离在主线程之外; 简洁的job 提交方法让job 切换时间大大降低;复合函数的思想摆脱了大量使用磁盘缓存中间结果的桎梏;大量现有,可定制算子的呈现简化机器学习算法设计;甚至BDAS框架兼容并包,一种体系提供所有功能。


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

熟练使用Scala语言的程序员不多,现状如此。实际上, 企业想招人进来直接玩转Spark是不太现实的,这样的人目前还比较少,尤其是不熟悉Scala的情况下。虽然存在Java和Python的API,但是Spark老东家重心还是在Scala实现的核心上,其他两个社区支持可能没那么及时。
熟知Spark运行时框架的人不多,很多人的理解存在误区。直接导致的一个严重结果就是写出来的程序“不靠谱”,运行很慢,或者出现错误的结果。在这种情况下,“傲慢与偏见”的心理作用会让人产生对Spark的抵触,甚至武断地对Spark盖棺定论。这是非常不好的事情。会上会讲到一点这方面的案例。
比起Mahout这么多年的发展,MLlib成熟度不够,不仅在算法数量上,也在于整体设计上。这就导致很多时候要自己写很多算法。整体设计上有点偏面向对象的风格,我并不是面向对象的厌恶者,但是机器学习算法用函数式语言写起来更直观。


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

首先Spark在Apache社区里的贡献者数目是首屈一指的,将来只会更多。Spark本身已经快要到1.0版本了。其流处理以及SQL的使用可能是大家最关心的,从Spark邮件组里就能看出来。GraphX前段时间并入了Spark主线,这两天Catalyst也并入了Spark主线。因此Spark的活跃度绝对没有问题。另外,Databricks团队的开发者以及社区的小伙伴们都是非常认真严肃的贡献代码, 其pull request审查非常严格。
不过相比于其他组件,MLlib发展相对较慢。首先MLlib的开发需要程序员在机器学习和系统两方面都有很好的知识背景,不过现在社区机器学习和系统做的好的人越来越多了。另外Spark RDD对机器学习算法还是有一定的限制的,想要玩的好还需要下功夫。我同意“专业的工具会有更好的效果”的说法,对于机器学习算法来说,各自有适合自己的并行模式及优化算法。但是如果下功夫好好玩的话,Spark MLlib是很给力的。你会发现,在Spark的框架下实现高效的机器学习算法是件既有挑战又很有趣的事情。不论我们未来是否跳出RDD的限制,都能做出很出色的事情来。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部