导读:腾讯作为国内体量最大的互联网公司之一,业务涵盖用户日常生活的方方面面,面对如此巨大业务数据量,如果不能对数据进行专业化处理并高效有序地存、管、用,如果不能使数据产生应有的价值,那么数据资产将会成为数据垃圾,成为社会和企业的负担。

大数据平台作为腾讯底层的基础设施之一,每天必须处理千万级规模的离线数据任务及十万亿级别的实时计算,否则无法满足业务每天数以亿计的数据分析计算的需求。

本文主要介绍腾讯大数据的构建理念和总体架构。

01

腾讯大数据的构建理念

项目立项的时候我们曾有过激烈讨论,是自主研发还是使用开源,“To be, or not to be: that is the question”。当时业务需求比较迫切,2009年上半年,QQ空间引入了“开心农场”业务,开启了疯狂增长的模式,业务部门的同事看着几乎是垂直的增长曲线笑逐颜开,我们看着曲线却笑不出来。如何能快速构建全新的数据仓库,满足业务快速增长的计算需求,我们在努力寻找答案。

在2008~2009年,开源在国内还没大行其道,很多程序员都有一种偏见,觉得使用开源都是没什么技术含量的。几乎所有的程序员心里都有一个梦想和追求,希望能自己实现一套顶尖的系统,从而在中国乃至世界的软件行业扬名立万。但是盘点了业务的需求以及对比了那时候团队能力和所能调配的人力之后,我们发现实现这么一套系统,无异于登天。完全自主研发新一代的数据仓库是难以攀爬的珠峰。

此路不通,只能改走开源路线。其实开源有很多好处,它有着丰富的社区资源和社区生态,有着庞大的各路代码贡献者,使用开源的系统,相当于利用了全世界的资源,利用了全世界的程序员的智慧。使用开源项目,能快速搭建适应业务需求的平台。

但开源对于我们来说也并不容易。首先,技术栈不一样,我们原来是C/C++技术栈,是做计费系统的,而大数据开源基本以Java为主,需要从头去学,幸好语言的差异并不是很难克服,我们边学习边招聘有大数据经验的开发者,慢慢地做了起来;另外,大数据生态是很庞大的,每一个项目都不足以达到企业级的需求,每一个项目都要进行大量的优化,才能符合我们可用性方面的需求。

从最初的蹒跚学步到现在,腾讯大数据走过了十余年,历经三代技术演进。第一代是“拿来主义”,拿来就用,但部分系统比如HDFS(Hadoop Distributed File System, Hadoop分布式文件系统)、Hive等因为性能、功能不能满足需求,我们对核心模块进行了定制化的优化;第二代是有限自主研发的阶段,我们对部分核心平台进行参考性的自主研发,重构实时采集系统,同时对底层实时计算引擎Storm使用Java进行重写等;第三代是纯自主研发的阶段,第三代的核心平台—高性能分布式机器学习平台Angel,是腾讯和北大等高校联合研发,具有完全知识产权。

我们一直是开源的受益者,从Hadoop到Spark到Storm……我们的发展离不开社区,我们弱小的时候依赖开源社区,我们成长后又积极回馈社区。其实早在2014年,我们就把腾讯自己的Hive版本进行开源,它对Oracle语法兼容等特性广受欢迎。我们第三代最核心的高性能分布式机器学习平台Angel在2017年就开源了,2018年还进一步捐献给Linux基金会。2019年,我们一口气开源了四大平台:实时数据采集平台TubeMQ(捐献给Apache社区)、资源管理平台TKEStack、分布式数据库TBase以及腾讯版本的OpenJDK—Kona JDK。我们有几十个项目的PMC和提交者及更大量的贡献者,每天都为社区贡献代码。

通过开源进行技术上的协同,可聚拢人才,一个好的项目能吸引很多优秀的开发者,有利于形成一个优良的技术生态,有利于推动技术进步。这也是我们选择开源的原因。

来自开源、回馈开源、坚持开源,这可以说是腾讯大数据平台十年发展的技术理念。另外一个技术理念是:一切要为业务所用

我们固执地认为,技术如果不能为业务所用,那它就是毫无价值的。我们自主研发的Angel项目,出发点也是因为当时开源社区里面没有符合我们业务需求的机器学习平台,自主研发是因为对业务有价值,而不是因为它在技术上很有挑战性以及我们要证明自己技术很牛。Angel自2017年开源后有超过一百多个公司和组织使用,包括华为、小米、OPPO、新浪微博、拼多多等,发挥了Angel在腾讯以外的价值。

02

腾讯大数据的总体架构

如前所述,腾讯大数据十余年的发展,经历了三代的技术演变,如图1所示。

▲图1 腾讯大数据三代技术演变

第一代架构从2009~2011年,以承载离线计算任务为主,如图2所示。

TDW主要以Hadoop为基础构建,我们主要做了两方面的优化:其一扩大了集群规模,包括增强了集群拓展性,优化了调度性能,增强了容灾能力,通过差异化存储降低了存储成本;其二是利用周边生态降低应用门槛,建设配套的调度与开发平台,兼容Oracle的语法,以及集成PostgreSQL数据库以提升小数据量的分析性能。第一代平台总结起来就是,技术上主要满足离线计算需求,技术挑战主要在不断扩展和优化集群规模,单集群规模从几十台到几百台,再到几千台不断突破。

▲图2 第一代离线计算平台架构

第二代架构从2012~2014年,在承载离线计算的基础上,扩展了平台能力,支持实时计算的需求,如图3所示。

▲图3 第二代实时计算平台架构

在第一代离线计算平台基础之上,我们融合Storm和Spark构建了第二代实时计算平台。主要的演进如下。

1)集成Spark,离线计算比Hadoop性能更高。

2)引入Storm,支持秒级/毫秒级的流式计算任务。

3)建设了实时采集系统TDBank,数据采集实现从天级(T+1)到秒级的飞跃。

4)支持资源和任务调度方面,平台支持离线与在线混合部署,任务容器化,资源管理的维度支持CPU、内存,以及网络与I/O,进一步提升了平台轻量化、敏捷性与灵活性,极大提升了平台利用率,降低了成本。

第三代架构从2015~2019年,在通用大数据计算外,开始支持机器学习、深度学习等AI场景,Big Data与AI在平台层面逐步融合,如图4所示。

▲图4 第三代机器学习计算平台

在第二代实时计算平台基础上,自主研发了机器学习平台Angel,并以Angel为核心构建第三代机器学习计算平台生态。主要演进如下。

1)我们与北京大学合作,自主研发了高性能分布式机器学习平台。该平台支持十亿至百亿维度模型,支持数据并行及模型并行,支持在线训练。同时,它除了支持传统的机器学习之外,还扩展支持深度学习、图计算等功能,具有全栈的AI能力。它具有友好的编程接口、丰富的算法库,并在上层构建了一站式开发运营环境,支持业界多种流行计算框架。Angel于2017年6月全面开源,2018年捐献给Linux基金会,2019年12月20日从Linux基金会旗下AI领域顶级基金会—LF AI基金会(Linux Foundation Artificial Intelligence Foundation)正式毕业,成为中国首个从LF AI基金会毕业的开源项目,意味着Angel得到全球技术专家的认可,成为世界顶级的AI开源项目之一。

2)资源管理层面,除了CPU,还支持GPU、FPGA等异构设备。我们是国内比较早实现GPU虚拟化且技术比较领先的(见我们在IEEE ISPA2018发布的论文“GaiaGPU: Sharing GPUs in Container Clouds”)。

3)大数据与数据库紧密结合,使用基于PostgreSQL的分布式数据库PGXZ(后改名为TBase,并于2019年对外开源),支持HTAP(Hybrid Transaction and Analytical Processing,混合事务和分析处理),使得TDW更好地支持OLTP(On-Line Transaction Processing,联机事务处理过程)的计算。

截至2019年,腾讯大数据走过十年,并且还在不断演进中,我们正在探寻下一代计算平台之路,我们在探索批流融合,我们在探索云原生大数据,我们也在尝试AI、大数据及云计算结合和软硬件结合,我们还在研究数据湖和隐私计算等前沿技术……大数据、人工智能和云计算,正在成为支撑业务发展的基础设施,下一代,会更精彩。

本文摘编于《腾讯大数据构建之道》,(书号:9787111710769)。

推荐语:腾讯官方出品!腾讯大数据构建之道首次对外披露!腾讯大数据平台十年磨一剑,践行“科技向善”落地方案

更多精彩回顾

书讯 |8月书讯(上) | 重磅新书来袭!书讯 |8月书讯(下) | 重磅新书来袭!资讯 |《Java核心技术》基于Java 17全面升级!干货 |再见了Java8,Java17:我要取代你干货 | 李三红:Java版本升级需要纳入到可持续性维度
干货 |市面上的大前端岗位到底是做什么的?新书 |全球首本系统介绍对偶学习理论、算法、应用的著作

腾讯大数据总体架构图,对外公开!相关推荐

  1. 腾讯大数据星火计划--Angel技术沙龙 对外报名正式启动!

    导语:腾讯大数据举办星火计划技术沙龙为广大大数据爱好者提供线下交流活动机会,技术沙龙第一期将于10月13日在深圳腾讯大厦举办,为您揭秘海量机器学习之道与Angel开源背后的故事. 大数据技术在过去10 ...

  2. 十年磨一剑 | 《腾讯大数据构建之道》正式出版

    文章来源于"腾讯大数据",作者星火菌 近日,在刚刚出版的<腾讯大数据构建之道>新书中,腾讯首次对外披露了自身大数据核心技术体系架构和海量业务应用实践.作为国内大数据领域 ...

  3. 腾讯大数据平台构建之道

    点击上方 "大数据肌肉猿"关注, 星标一起成长 点击下方链接,进入高质量学习交流群 今日更新| 1052个转型案例分享-大数据交流群 导读:腾讯作为国内体量最大的互联网公司之一,业 ...

  4. 腾讯大数据回答2019:鹅厂开源先锋,日均计算量超30万亿,全力打破数据墙

    乾明 发自 腾讯汇  量子位 报道 | 公众号 QbitAI 开源,开源,开源. 这就是腾讯2019年技术领域最直观的变化. 最新代表事件,来自于腾讯首个开源的AI项目Angel,完成3.0版本进化后 ...

  5. 荣登2019中国“十佳大数据案例”,腾讯大数据再获国家认可

    5月26日,由工业和信息化部.国家发展和改革委员会.国家互联网信息办公室和贵州省人民政府主办,国家工业信息安全发展研究中心承办的<大数据优秀产品和应用解决方案案例系列丛书>发布会暨数博会& ...

  6. 腾讯技术工程 | 腾讯数据平台部总监刘煜宏:这5大产品平台,展示了腾讯大数据的核心能力...

    12月13日,"2017互联网+大数据高峰论坛"在北京中国大饭店拉开帷幕.来自政府.研究机构及高校.企业的大数据专业人士共聚一堂,以"慧聚数据之力,赋能智慧政企" ...

  7. 腾讯大数据平台,要“没人管”了

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 接入消息量:55万亿 实时计算:65万亿 分析任务:1500万 -- 可以想象吗?这些万亿级的数字,竟是一家企业每天都要处理的数据量. 没错 ...

  8. 腾讯大数据高级产品总监洪桃李:决胜未来的4大关键能力

    11月18日,在2017中国产品经理大会上,腾讯大数据高级产品总监洪桃李,从解码产品经理日常工作的角度,从共享单车.共享充电宝等案例着手,给大家分享了产品经理的4大关键能力:新事物的好奇心.纵深的业务 ...

  9. 基于健康档案的区域卫生信息平台-总体架构图

    基于健康档案的区域卫生信息平台 总体架构图

最新文章

  1. Android系统默认Home应用程序(Launcher)的启动过程源代码分析
  2. Virtual 2004中安装DOS以及实现文件共享的方法
  3. POJ1182 食物链 —— 种类并查集
  4. Super Mario HDU - 4417(主席树解决区间数字小于k的个数||线段树+离线)
  5. 20165326 java第四周学习笔记
  6. 【职业发展记录-05】地图服务发布-几种方式
  7. C++算法学习(分支限界法)
  8. 渔村小厂,如何成长为5G霸王
  9. Linux BT下载(7)-种子解析模块设计与实现1
  10. 「精品」无损批量压缩图片工具 - Caesium Image Compressor
  11. “汇新杯”互联网产业模式专项赛介绍
  12. 微信群打卡小程序_微信群不好管理?这几款小程序帮你管理微信群
  13. 闪耀在 UNIX 传奇往事中的启示, UNXI 见证者带你一览究竟
  14. “但行好事 莫问前程 只问耕耘 不问收获 成功不必在我 而功力必不唐捐” 科技袁人·年终盛典——5G是科技时代非常重要的基础设施...
  15. sd卡数据丢失怎么恢复?
  16. 海量工业数据如何应用?能源企业率先做了这些尝试
  17. 在ipad任意界面都可以写字_用iPad (含pencil)作医学生的学习工具使用技巧分享第三集...
  18. c语言程序设计第2章,c语言程序设计(包云)c第2章算法
  19. 【数学建模暑期培训】配送中心选址问题
  20. Switch控件详解

热门文章

  1. php如何生成一年的日历表_html - PHP如何生成一个指定年份一整年的日历
  2. contiki MAC
  3. 思路分享 | 看我如何给微信下钩子[转]
  4. 看完这篇就全懂负载均衡了
  5. 零基础如何学习Python?
  6. D2D资源分配的方式
  7. Python 对字典的认知
  8. 自学 java 怎样快速入门?
  9. 妄想山海脚本(采矿仓石)
  10. 通过一文学会搭建Django+Xadmin后台管理系统