当前位置: 首页 > 科技观察

WOT2016杨大海:优酷土豆Hadoop集群挑战海量数据与高并发之道

时间:2023-03-14 17:52:41 科技观察

WOT2016杨大海:优酷土豆Hadoop集群挑战海量数据和高并发转向新媒体。如今的网民不再愿意做信息的被动接受者,而是习惯于主动寻找自己感兴趣的内容,这也为国内视频网站带来了近年来难得的发展机遇。杨大海,优酷土豆大数据平台高级架构师,主要负责优酷土豆开放大数据平台的研发和运营。对于视频网站来说,仅仅提供基础服务已经不能满足用户的需求。能否挖掘大数据的价值,为用户提供差异化??的优质内容,成为视频网站能否走红的关键。目前,优酷土豆每天播放近10亿条视频,产生的数据量约为20T。优酷土豆利用大数据技术,为用户提供“猜你喜欢”的视频推荐;为主诉人提供准确的内容交付;为优质内容的输出和采购提供指导性决策支持;也促进公司其他产品分析问题,寻找优势,从而促进公司整体业务的发展。为支撑公司业务的快速发展,优酷土豆大数据平台不断发展壮大。近日,优酷土豆数据平台高级架构师、WOT2016讲师杨大海在接受记者专访时表示,要充分发挥大数据的价值,必须打破部门间数据独立的格局建立一个开放的数据平台,让所有同事都知道如何利用数据改进工作,将数据文化融入公司运营。图1:优酷土豆Hadoop平台演进优酷土豆大数据平台架构杨大海表示,优酷土豆运营的数据主要包括播放、用户交互、搜索和广告。整个平台基于Hadoop集群,集群规模已达到1000节点,并会结合业务不断扩展。图2:基于hadoop的hdfs和yarn的数据平台设计架构图由于跨机房等问题,优酷土豆开发了日志系统,为每个团队收集近500种日志。采集到的日志根据业务类型有不同的存储策略。原始日志直接以文件的形式离线存储在HDFS上,用于一些离线分析处理;此外,平台还内置了一套开放的Kafka,满足一些实时业务读取和访问数据的需求。平台所有计算均使用YARN实现动态资源管理。目前MapReduce、DAG、Spark等计算模型都是基于YARN集群部署的。为了避免一些在线业务查询的相互影响,目前HBase和Storm是通过独立的集群运行的。为了最大限度地合理利用服务器资源,团队还在YARN上测试了HBase和StormonYARN。图3:HDFS分层存储杨大海说,团队使用Storm已经4年多了。与SparkStreaming相比,Storm更能响应实际计算的需求。例如,平台可能每秒产生大量的视频播放数据。现在要计算某个视频的播放量,只要Storm的计算程序负载没有问题,就可以实现实时响应需求进行计算,呈现简单的线性数据流形式。但是SparkStreaming不会直接计算,它会等待10秒或20秒,直到数据量达到几千甚至几万,然后进行统一计算。相当于形成了很多时间窗。虽然这个时间窗口可能已经足够小了,但是和数据流还是有很大的不同。数据平台团队在整个技术栈上创建了Hadoop扩容优化、Storm问题排查优化等应用,并开通了一个HBase集群和一个Redis集群作为Cache,通过接口为全公司提供服务。海量数据和高并发的挑战杨大海表示,现在几乎所有的企业在构建大数据平台时都面临着两大难题,那就是如何应对数据量和并发的挑战。海量数据如前所述,优酷土豆每天产生近10亿的浏览量。在此基础上,用户还会产生很多周边行为,比如点赞、评论等。杨大海表示,目前市场上很少有数据产品能够为如此海量的数据提供即时、灵活、多维度的查询,而且都存在一定的局限性。现在大家普遍的做法是综合考虑数据量和需求两个方面,通过各种技术的结合来实现,但是都没有一个可以完美解决。比如现在计算每个视频的播放曲线。现在优酷土豆总共有3亿多个视频,每个视频每天都会产生一个数据,代表它今天的播放量。这样即使不加其他维度,每天存储在数据库中的数据量也等于视频量,这必须有NoSQL支持,比如HBase。但是HBase不支持多维查询,只能通过一个Key进行查询,比如videoID。如果此时需要添加一个维度,比如在安卓手机上的播放状态,需要添加终端是安卓还是iOS的维度。实现即时查询非常困难。为了实现这一需求,杨大海和他的数据团队也在逐步探索。早期他们建了一个索引表,从Android终端和视频ID对应的终端两个维度生成一个key,然后找到数据库的主键,一个get就可以查询到。后来社区开源了Phoniex,这是一套多维查询的office组件,简化了索引的工作。但在实际过程中,杨大海发现使用这种方式是支持全表扫描的,所以在程序设计中尽量避免全表扫描,让后台计算部分数据。杨大海表示,我们在NoSQL技术的探索上还有很长的路要走。高并发要求所有系统的吞吐量都很高,但是机房的网络环境并不理想。需要数据团队有很强的通过操作系统发现系统瓶颈的能力。比如一个写得不好的程序,一开始并发低的时候可能不会出现任何异常,但是并发高的时候可能会出现内存泄漏和崩溃,这是很常见的。这时候数据部门就需要对系统的命令进行分析,看其占用的资源,然后逆向推导可能存在的问题来解决。编写一个系统往往需要很短的时间,但是这个系统能够经受住大流量的考验并正常运行,需要很长时间的迭代。图4:Hadoop平台挑战数据是平台发展的源泉杨大海表示,数据是优酷土豆大数据平台架构不断演进的原动力。公司很早就提倡数据采集和数据化的理念,导致业务部门对数据非常敏感。无论是运营还是销售,几乎所有的业务部门都知道如何利用数据创造价值。.现在优酷土豆有四五百种日志,用户数据结构化的很好,每条日志都有结构。每个字段的描述都有公司内部开放的API供员工查看。在这样的数据环境和氛围下,从数据结构上看,员工们想到了开发一些以前没有想到的产品,比如如何根据数据做出精准的算法用于广告投放等等。本文前面提到,大数据平台的建设本身就是一个非常低级的技术工作,需要大量的人员投入到前期的建设和后期的运维中。如果每个业务部门单独搭建基础系统,然后再开发业务,不仅浪费资源,更浪费时间。因此,只有突破以往公司各业务部门的数据壁垒,构建开放的大数据平台,才能更好地发挥技术的价值。然而,真正在企业内部运营一个大数据平台并不容易。由于整个团队的业务不能因为某个人或某个团队影响到这个平台,所以数据的访问会涉及到很多权限问题。那么在这种情况下如何让其他业务部门人员愿意使用数据平台并有很好的体验,需要综合考虑数据量、任务数量、资源竞争等,及时制定资源管理和接入策略规划.杨大海表示,他的团队也在不断尝试解决使用过程中遇到的问题。在客户端的搭建初期,需要建立严格的规范,哪些目录用于生产使用,哪些目录用于测试使用,以及各个用户团队的协同管理。当然,还需要对机器资源进行监控,防止用户在客户端机器上提交不相关的程序。前期做好规范,后期可以减少很多维护成本。杨大海也分享了几个值得学习的经验,比如做一些小工具尽可能满足大家的需求,比如把所有服务器的日志作为一个服务开放给每个团队;在技??术层面规划运营应用资源的比例,设置一个资源在整个资源中的最大比例;另外,由于大家都没有主动删除数据的习惯,所以需要借助技术手段来找到这些无用的数据,等等。安全和健壮是开放平台的前提杨大海主任采访中表示,公司内部的数据开放平台对业务和公司的发展起到了非常积极的促进作用。然而,开放意味着公司中任何其他需要数据平台的职能团队都有机会使用它,包括技术和非技术团队。平台存储的各种数据都是公开和保密的,不同的用户可以访问不同的数据。因此,保证平台的安全性和健壮性是构建开放平台的前提。

猜你喜欢