专访梁宇明:Hulu的Spark On YARN之路

原创
数据库 Spark
Hulu,因为尚未进入中国,知道它的人远不如知道YouTube和优酷、土豆。而在美国,Hulu已经将Google Video挤出局成为全美排名第10的视频网站。今天,来自Hulu,负责大数据团队基础架构开发的梁宇明老师,将为我们分享Hulu的Spark On YARN之路。

梁宇明, 2010年从清华大学自动化系毕业加入Hulu。在Hulu做过多个团队的开发,最早是在搜索团队,后来负责在Mobile和Media Room Device设备上的开发。之后负责了在Hulu的大数据构建工作。

梁宇明在51CTO举办WOT峰会,分享《Spark On YARN in Hulu》Hulu大数据平台是research团队构建算法,深度理解用户需求的重要基础。本讲主要介绍Hulu大数据平台架构,Spark On YARN在Hulu的应用,以及Hulu在Docker + YARN上的探索。

演讲PPT官方下载地址:http://down.51cto.com/data/1634397

[[118648]]

Hulu高级研发主管 梁宇明


记者:我们也知道Hulu是个视频网站,它其实更多的是面向美国的用户,它在中国的研发团队,在Hulu整个集团当中担任什么样的角色?

梁宇明:Hulu北京的研发团队是Hulu***的研发团队,Hulu一共有三个研发团队,分别位于洛杉矶、西雅图还有北京,其中北京是***的研发团队,北京研发团队以做一些research相关的工作为主,同时也做一些,为research提供一些基础视频架构,同时也会有一些其他的开发。

Hulu框架

Hulu技术框架

记者:提到大数据,大数据现在很火,我们想知道在Hulu网站架构体系下,大数据整个技术应用大概分为几部分?

梁宇明:我觉得可以从历史上去看待这个问题,就是Hulu的历史上,大数据的发展应该分为两个阶段,***阶段主要是用做收集一些数据进行reporting,这个相对来说流程比较清晰一些,ingested一些数据,把这些数据在HDFS中生成出来导入到Hive中。然后在中间过程中我们会有自己的叫做Hulu in Spark,这是一条线。在这条线完成一定时间之后的话,我们注意到说为了更好地服务research方面的需要,特别是research希望通过一些机器学习的方法从数据中挖掘一些价值,那么已有的这些处理方法就不可行了。在这个基础之上,我们发展出了大数据的第二条业务线,也就是我现在负责的团队,它主要做的一件事情是说考虑到research体系的一个整个的生命周期,比如说以机器学习的方法解决一些用户关心的问题大概分为几大步骤,***个步骤是说获取用户的行为,在用户的行为生成一些特性,延伸出一些模型,***被用作在线的一些服务中。我的团队在第二阶段做的主要的事情是说把离线的这部分和在线的这部分做起来,主要通过实现了一个Lamda的方式去做出来的。在这个基础之上,我们有一些问题没有解决就是research怎么样获取团队和生成这个模型的过程,这个过程我们主要是通过基于Spark On YARN这样的体系,然后一起以及上面构筑的library来实现的。

记者:你刚才也提到Spark,我们也知道在Hulu团队当中是用的Docker + YARN的方式来做Spark方面的事情。

梁宇明:我可能想稍微修正一下,就是在Hulu内部Spark On YARN和Docker On YARN是分开的两部分,然后我们在Spark方面的主要的应用有两方面,***方面是Spark Streaming,这个主要是用作我们实时展现的一些基础的部件,另外一部分主要是给research团队去写一些他们的算法,实现一些并行化算法更方便的,用来替代一些原本Mapreduce的程序,这是Spark On YARN这部分。Docker On YARN这部分是用来解决一个完全不同的问题的,我们之所以用Docker on YARN是因为在Hulu有一些research写出来的程序,它们的环境依赖极其复杂,很难通过一个Mapreduce这样的程序或者Spark程序表现出来。比如说就像有一些计算机视觉的色彩,依赖了很多外部类,有很多的C++或者是C的代码,这样的话,环境特别复杂,又很难用Mapreduce方式展现出来。我们可以做的一件事情就是说我们把这个程序以及它的环境整个通过Docker打包成一个Docker Image,这样子的话就相当于一个小型的摄影机,所有的东西都在里面了。有了这个东西就我们相当于生成了一个超级可执行体,把这个执行体放在任何地方都可以执行的,至少我们就考虑到怎么样把它并行化,在并行化的过程当中就怎么样把Docker Image分化到不同的机器中去,特别是分化到一些含有公共资源的机器中去。然后怎么去解决这个问题呢?我们考虑到我们内部的话,已经把Mapreduce生成了很大的集群,然后我们希望说把Docker同样放在这样一个集群中去运行,这样的话我们可以做到自由的利用,这是我们做Docker On YARN的原因。

Doceker on Yarn

Hulu的Doceker on Yarn

记者:你刚才也提到资源的优化,如果说是采用这种架构,有多大的改进?

梁宇明:具体的数字我很难描述,但是我可以具体说一件这样的事情。比如说以前的话,做一些计算机视觉的东西和编程化处理的话就要提前部署十台机器,这十台机器大环境都已经部署好了,然后这十台机器主要用作脸部视觉处理这一件事情,除了这件事情以外它平常都是空闲的,如果把它放在我们的集群中呢,就属于如果你在不做这件事情的时候,你的计算机就会被其他的程序利用,这个就会好很多,这个可以避免说比申请一堆闲置的机器在那里,没有特别好的资源利用率。我在51CTO的WOT峰会上,主要是分享在Spark On YARN的部署以及开发的过程当中遇到的一些问题,因为我们在最早的时候,把Spark On YARN的时候,就是因为我们用的Hadoop发行版本跟Spark其实不兼容的,然后我们做了一系列的处理。之后在Spark中,因为Spark现在的发展还有不如Mapreduce的地方,在整个的应用过程当中还会碰到一些各种各样的问题,然后我就会去分享一下,在这个过程当中我们遇到什么样的问题,以及怎么样解决它,希望对大家有所帮助。

记者:那***有一个问题,Spark也是大家很看好的新兴技术,你对于它未来,比如说今年或者明年Spark大概的展望或者希望。

梁宇明:我个人是非常看好Spark这项技术的,我觉得它在未来的体系当中将扮演更重要的角色,然后再逐步的替换掉一些Mapreduce以前所做的工作,我觉得这是一个大势所趋。

【责任编辑:彭凡 TEL:(010)68476606】
责任编辑:彭凡 来源: 51CTO
相关推荐

2012-03-26 20:10:58

去哪儿架构师艺术家

2015-07-24 10:54:02

WOT2015情景计算

2014-04-16 13:47:43

SparkYarn

2018-08-14 16:54:00

机房建设

2012-12-14 10:15:32

新浪CDN代码发布部署

2021-08-31 23:09:27

Spark资源分配

2015-08-31 17:45:38

2017-01-09 13:21:24

达沃超融合

2009-12-15 17:19:23

架构师梁远华聚聚呀

2013-11-29 13:51:46

数据挖掘数据挖掘平台淘宝明风

2015-08-03 17:29:11

个推

2013-07-24 15:21:32

CDN故障响应

2013-07-22 13:51:24

监控CDN服务器刘宇

2012-12-11 22:41:20

淘宝部署双11

2018-10-15 10:38:14

UCloud虚拟网络SDN

2013-08-04 22:14:52

DevOpsDevOps实施DevOps实践

2010-06-04 12:13:40

2011-12-23 15:56:02

2012-12-13 14:39:13

Velocity

2010-12-09 16:44:49

点赞
收藏

51CTO技术栈公众号