优酷背后的大数据秘密:资源弹性,可支撑EB级存储

在本文中优酷数据中台的数据技术专家门德亮分享了优酷从Hadoop迁移到阿里云MaxCompute后对业务及平台的价值。

本文内容根据演讲视频以及PPT整理而成。

大家好,我是门德亮,现在在优酷数据中台做数据相关的事情。很荣幸,我正好见证了优酷从没有MaxCompute到有的这样一个历程,因为刚刚好我就是入职优酷差不多5年的时间,我们正好是在快到5年的时候,去做了从Hadoop到MaxCompute的这样一个升级。这个是2016年5月到2019年现在的5月优酷的发展历程,上面是计算资源,下面是储存资源。大家可以看到整个用户数,还有表的数据,实际上是在呈一个指数式增长的。但是在2017年5月,当优酷完成了整个Hadoop迁移MaxCompute后,优酷的计算消耗,还有储存的消耗实际上是呈下降趋势的,整个迁移得到了一个非常大的收益。
image

下面说一下优酷的业务特点。

第一个特点从大数据平台整个的用户复杂度上面,不止是数据的同学和技术的同学在使用,还会包括一些BI同学,测试同学,甚至产品运营都可能去使用这个大数据的平台。

第二个特点就是业务复杂,优酷是一个视频网站,它有非常复杂的业务场景,从日志分类上,除了像页面浏览,还会有一些播放相关的数据、性能相关的数据。从整个的业务模式上,有直播、有会员、有广告、有大屏等这样一些非常不一样的场景。

第三个特点,就是数据量是非常巨大的,一天的日志量会达到千亿级别,这是一个非常旁大的数据量,而且会做非常复杂的计算。

第四个是比较有意思的,不管是小公司、大公司,对成本的意识是非常高的。优酷也是有非常严格的预算,包括在阿里集团内是有非常严格的预算系统的,但是我们也经常会去做一些重要的战役,像双十一战役,像我们暑期的世界杯战役,还有春节也会搞各种战役。这样的话,其实对计算资源的弹性要求是非常高的。

基于上面的优酷的业务特点,我整理了MaxCompute可以完美的支持我们业务的几个特点。
image

第一个,简单易用。
第二个,完善的生态。
第三个,性能非常强悍。
第四个,资源使用非常弹性。

第一个特点,简单易用。MaxCompute有一个非常完整的链路,不管是从数据开发,还是数据运维,包括数据集成,数据质量的管控,还有整个数据地图,数据安全。当年优酷从Hadoop迁到MaxCompute之后,我们最大的体会是自己不用半夜经常起来去维护集群了,不用去跑任务了,写一个任务,别人之前提一个需求过来,我可能要给他排几周,而现在我可以告诉他,我给你马上跑一下,就可以出来了。包括之前像分析师BI还要登录客户端,写脚本,自己写调度,经常会说我的数今天为什么没出来?包括高层看的数,可能要到12点钟才能出来。而现在基本上所有重要的数据都会在7点钟产出,包括一些基本的业务需求,其实分析师或者产品,他们自己都可以实现了,不需要所有需求都提到数据这边。
image

第二个特点,完整的生态。优酷在2017年之前是完全基于Hadoop的生态,迁到MaxCompute之后,是基于阿里云提供的Serverless大数据服务的生态。大家可以在开源上看到的组件,在整个的MaxCompute上都是有的,而且比开源的要更好用、更简单。从架构图上可以看到,我们中间是MaxCompute,左侧依赖的Mysql、Hbase、ES、Redis这些都是由同步中心去做一个双向的同步。右侧会有资源管理、资源监控、数据监控,包括数据资产,还有一些数据规范。我们下层的数据输入,包括一些集团的采集工具,再往上边,有提供给开发人员用的DataWorks,包括一些命令行的工具;有提供给BI人员用的QuickBI及数据服务。
image

第三个特点,强悍的性能,MaxCompute支撑了优酷EB级的数据存储,千亿级的数据样本分析,包括千亿级的数据报表,10W级实例的并发、任务。这些在之前维护Hadoop的时候,是想都不敢想的。
image

第四个特点,资源使用的弹性。我们在2016年迁移之前,其实优酷的Hadoop集群规模已经达到了一千多台,这个当时还是一个比较大的规模。当时我们遇到了很多问题,包括像NameNode 这种内存的问题,机房没有办法再扩容的问题,当时是非常痛苦的,包括一些运维管理上面的问题。我们不断的去问运维要资源,运维告诉说,说你们已经花了多少多少资源,花了多少多少钱。我们面临的问题是计算资源如何按需使用,夜里的时候作业很多,到了下午之后,我的整个集群都空下来了,没有人用,造成了浪费。其实MaxCompute完美的解决了这个问题。
image

第一个,它是按用量计费的,不是说给你多少台机器,然后就收你多少钱的,真的是你用了多少资源收多少钱的,这个在成本上来说,比自己去维护集群,可能是一个砍半(降50%)这样的收益。

第二个,实际上MaxCompue计算资源是可以分时的,比如说生产队列,凌晨的时候会调高一些,保证报表能够尽快出来。到白天时候,让开发的计算资源高一些,可以让分析师、开发去临时跑一些数据,会更顺畅一些。

第三个,MaxCompute快速的扩容能力,比如说突然有一个比较强的业务需求,发现数据跑不动了,计算资源不够,所有的队列都堵死了,这个时候其实可以直接跟运维说一声,帮忙一键扩容,他两秒钟敲一个命令就搞定了。这样的话,所有的资源可以迅速的消化下去。

image

上面是优酷为什么采用MaxCompute,下面是在优酷的业务场景下,我们一些典型的方案、应用。这张图实际上是优酷,包括可能现在阿里集团内部一些非常典型的技术架构图。中间可以看到,MaxCompute在中间核心的位置,左侧主要是一个输入,右侧是一个输出的趋向,绿色的线是一个实时的链路,包括现在我们从整个的数据源上,比如DB也好或者服务器的本地日志Log也好,我们通过TT&Datahub存储到MaxCompute上面做分析。当然现在非常火的Flink实时计算,其实是作为一个实时处理的链路。

包括DB的同步,除了实时的链路,DB也会去通过按天/按小时,把数据同步到MaxCompute,数据计算结果也可以同步到Hbase、Mysql这种DB上面。再通过统一的服务层对应用提供服务。下面这个是机器学习Pai做的一些算法训练,再把训练的结果通过OSS传到一个算法的应用上面去。
image

这张图可能也是业界比较流行的一个数仓分层的图,因为我们这边是数据中台,所有的数据都是统一从ods层cdm层,然后ads层,去一层一层的往上去做精细,再到最上面,通过接口服务、文件服务、SQL服务,去提供多样化的服务。再往上面,提供对内的一些数据产品,对高管、对小二,可能还有一些对外的,比如说像优酷的播放数,包括热度这些对应用的数据。
image

这张图其实就是我们从Hadoop迁到MaxCompute平台上以来,两个非常经典的案例。我们通过数据中台对不同场景的用户打通,来去赋能到两个不同的场景,提升业务价值。

第二个,可能是内部的,我们通过优酷,还有集团内部的一些BU去做换量,我们通过统一的标签去做样本放大,把优酷的量导给其它的BU,把其它BU的量导给优酷,这样去达到一个共赢的效果。
image

这张图大部分互联网公司不太会涉及到,就是关于反作弊的问题。这个是我们在MaxCompute做的一个反作弊的架构,通过原始的数据去提取它的特征,然后再通过算法模型,包括机器学习、深度学习、图模型去支持流量反作弊、渠道反作弊等等。再通过业务场景上反作弊的监控工具,把监控到的作弊信息去打一个黑白样本,再把这个黑白样本跟特征一起来不断的迭代优化算法模型。同时针对算法模型,做一个模型的评价,不断来完善反作弊体系。

最后一点,其实还是跟成本相关,在日常使用中,一定是有小白用户或者一些新来的用户去错误的使用或者不在乎的使用一些资源,比如经常会有一些实习生或者是非技术的同学,如分析师,一个SQL消费比较高,这个其实是非常浪费资源,而且可能他一个任务,让其他所有人的任务都在这儿等着排队,实际上我们会去对整个的资源做一个治理。

从节点的粒度上,通过大数据来治理大数据,我们可以算出哪些表产出来之后,多少天没有被读取的,包括它的访问跨度可能没有那么大的,我们会去做下线或者去做治理,有一些业务场景可能并不是非常的重要或者它的时间要求没有那么高,比如一些算法训练,可以去做一些错峰的调度,保证水位不要太高。从MaxCompute任务的角度,可以算出哪些任务有数据倾斜、哪些数据可能会有相似计算,哪些任务需要去做MapJoin,哪些任务需要去做一些裁剪,然后来节省它的IO。还有哪些任务会去做暴力扫描,扫一个月、扫一年的数据,哪些数据可能会有这样一个数据膨胀,比如说它做了CUBE之类的这种复杂计算,一些算法模型的迭代;我们通过数据计算出来的这些迹象,去反推用户,来去提高它的这样一个数据的质量分,来去达到我们降低整个计算资源的目的。

在计算平台的角度,我们也持续的在使用MaxCompute推出的一些非常高级的用法,比如我们这边的HBO、Hash Cluster、Aliorc;
image
第一个,HBO就是我们基于一个历史的优化,这样避免了用户不知道怎么调参,我可能为了自己任务快一点,就调一个特别大的参数,这样的话,对集成的资源是非常浪费的。通过这个功能,用户就不用去调参数,集群自动调好,用户就写好自己业务逻辑就好了。

第二个,可能就是最近两年推出的Hash Cluster,当时在使用Hadoop的时候经常会出现,两个大表Join的时候计算不出来,这个Hash Cluster其实是一个优化的利器。大表跟小表Join,可以做一些分发,做一些优化。大表跟大表就涉及到一个排序的问题。这个Hash Cluster,实际上就是提前把数据排好,中间省掉很多计算环节,来达到效率提升的目的。

第三个,Aliorc,在一些固定的场景上面,可以稳定的提升20%的计算效率。

第四个,Session。对一些比较小的数据,直接就放到SSD或缓存里面,一个节点下游有100个叶子场景,是非常友好的,因为低延迟秒出结果。同时,优酷也在使用Lightning解决计算加速,这个是在一个计算架构方案上的优化,它是一个MPP的架构。
image

最后一页是存储的优化,因为像一些关键的原始数据或者是需要审计的数据是不能删的,永久不能删的。实际上就会造成我们数据存储的趋势是一直往上不减的,计算会在某一个时间点达到一个平衡。当前用这么多的计算资源,再往后,其实应该也不会再大涨了,比如说旧的业务逻辑下掉了,会换新的业务逻辑,这样会保持在一个相对平稳的波动上面。但是储存,因为它有一些历史的数据是永远不能删的,可能会出现一直在增长,而且是指数级的。所以我们也会持续关注存储的情况,还是通过大数据来治大数据,去看哪些表的访问跨度比较小,来去做生命周期的优化,来去控制它的增速。还有刚才提到的Aliorc,实际上也是做压缩的。我们会去做一些大字段的拆分,来提高压缩的比例。

OK,这个是优酷在MaxCompute中的一些应用场景,感谢大家的聆听。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 本身真的有用吗?CSDN要对Python下手了!

Python 作为一种解释型技术脚本语言,越来越被认可为程序员新时代的风口语言。 无论是刚入门的程序员,还是年薪百万的 BATJ 的技术大牛都无可否认:Python的应用能力是成为一名码农大神的必要项。 而作为Python初学者来讲,最大的问题…

揭秘高德地图如何利用MaxCompute管理海量数据

摘要:随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能。通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力&a…

Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据增量索引构建

文章目录一、基础软件安装1. 安装mysql2. Elasticsearch7.15.2 安装部署3. kibana 安装部署4. logstash-input-jdbc 安装部署二、数据库准备2.1. 创建数据库2.2. 表结构初始化2.3. 数据初始化三、logstash 配置mysql3.1. 创建目录3.2. 上传mysql驱动3.3. 创建jdbc.conf3.4. 创建…

为什么说下一个十年的主战场在Serverless?

作者 | 不瞋,阿里云 Serverless 负责人"唯有超越,才能让我们走下去。"这是不瞋在阿里的第十年。从2010 年加入阿里云,不瞋参与了阿里云飞天分布式系统的研发,历任批量计算的架构师、表格存储(NoSQL&#xff…

解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

如今,推荐系统已经成为各大电商平台的重要流量入口,谁才能够做到比用户更懂用户,谁占据了新零售时代的主动权。手机淘宝的推荐更是淘宝最大的流量入口和最大的成交渠道之一,其背后是最为复杂的业务形态和最复杂的场景技术&#xf…

Elasticsearch7.15.2 基础概念和基础语法

文章目录一、基础概念1. ES是什么?2. 名词定义3. 对应关系4. 索引5. 分词二、基础概念2.1. 索引创建2.2. 索引/文档删除2.3. 索引修改三、ES 查询3.1. 简单查询3.2. 分页查询3.3. 复杂查询四、利用analyze api搜索4.1. 索引创建4.2. 索引查询4.3. 分词结果4.4. 索引…

技术重塑未来工作方式

作者: Nutanix亚太及日本地区高级副总裁兼销售负责人 Matt Young 新冠肺炎被宣布为“大流行病”之后,几乎在一夜之间,业务连续性的概念发生了根本性变化。在此之前,业务连续性通常指的是企业在某一办公地点遭遇像洪灾等恶劣天气或…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(本地)

背景: IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。 目标: 定制化中文分词器,使得我们的中文分词器支持扩展的词汇 …

多点在线构建Noxmobi全球化精准营销系统

摘要:大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本&am…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(远程)

IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。 文章目录一、静态web搭建1. 安装nginx2. 创建es目录3. 创建分词文件4. 存放静态5. 验证二、配置远程分词…

万博智云上云 单机软件升级多并发SaaS平台

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 业务痛点 自2016年开发迁移工具主要面向私有云环境,但是随着公有云用户越来…

学会这10大高性能开发技术,轻松躲过裁员名单!

来源 | 编程技术宇宙责编 | Carol封图 | CSDN 下载自视觉中国程序员经常要面临的一个问题就是:如何提高程序性能?这篇文章,我们循序渐进,从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进,串联起高性能开…

开放搜索助力提升趣店商城20%转化率

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 趣店集团,成立于2014年3月,是中国领先的金融科技企业&…

Elasticsearch7.15.2 修改IK分词器源码实现基于MySql8的词库热更新

文章目录一、源码分析1. 默认热更新2. 热更新分析3. 方法分析二、词库热更新2.1. 导入依赖2.2. 数据库2.3. JDBC 配置2.4. 打包配置2.5. 权限策略2.6. 修改 Dictionary2.7. 热更新类2.8. 编译打包2.9. 上传2.10. 修改记录三、服务器操作3.1. 分词插件目录3.2. 解压es3.3. 移动文…

母婴企业上云 实现线上线下互动营销、一体化管理服务

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 主要从事母婴产品的销售,拥有三家门店,未上云之前采用…

确认! Python再次夺冠,老码农:崩溃!

2020年转眼已过大半,在近一年的编程语言榜单中,Python已经走上卫冕的道路,并且与Java的差距拉得更远了一些。以往与Java常呈现你追我赶之势,而这一次则是直接相差由10%增加到15%!毋庸置疑Python的火,有目共…

SAP与阿里云的深度合作 为企业提供领先的SaaS 服务

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 什么是企业IT治理? 企业IT治理是对企业中IT资源的合理规划和分配&#xff0…

Docker JFrog Artifactory 7.27.10 maven私服(搭建篇)

文章目录一、docker 准备1. 安装docker2. 启动docker3. 监控docker状态二、docker 镜像2.1. 搜索JFrog Artifactory镜像2.2. 拉取镜像2.3. 开放对应端口2.4. 浏览器验证2.5. 登录一、docker 准备 1. 安装docker yum install docker2. 启动docker systemctl start docker3. 监…

阿里妈妈数据字化营销与MaxCompute的不解之缘

摘要: 大数据计算服务(MaxCompute)是一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案,目前已在阿里巴巴内部得到大规模应用。来自阿里妈妈基础平台大规模数据处理技术专家向大家分享了MaxCompute在阿里妈妈数据字化营销解决方案…

年薪201万的华为“天才少年”曾是三本复读生,逆袭就是抓住每一次提升自己的机会 | AI大赛报名开启

当我们看到“华为最高档天才少年年薪201万的话题”冲上热搜时,大多数人一辈子也无法企及的数字让我们羡慕不已。而入选的大部分是计算机、软件工程、模式识别与智能系统专业,尽管我们知道这些专业很火,薪资很高,但对于百万年薪来说…