写点什么

98.8 秒夺冠,解析腾讯云数智背后的架构与算法优化

  • 2016-11-15
  • 本文字数:3261 字

    阅读完需:约 11 分钟

背景

11 月 10 日,具有计算奥运会之称的 Sort Benchmark 全球排序竞赛公布了 2016 年最终成绩,腾讯云大数据联合团队用时不到 99 秒(98.8 秒)就完成 100TB 的数据排序,打破了阿里云去年创造的 329 秒的记录。在更早前,百度创造的纪录是 716 秒,Hadoop 的记录是 4222 秒。

在这次竞赛中,腾讯云数智分布式计算平台,夺得 Sort Benchmark 大赛 GraySort 和 MinuteSort 的冠军,这也体现了腾讯云数智分布式计算平台在数据处理上的优越性能。在竞赛结果公布之后,InfoQ 也对腾讯云大数据联合团队进行了采访,从技术层面报道腾讯云数智分布式计算平台的实现原理,以及竞赛结果所带来的长远意义。

关于腾讯云大数据联合团队

此次参赛的腾讯云大数据联合团队是由腾讯云存储产品中心、腾讯数据平台部组成,这个团队在大数据技术和应用管理上有丰富的实践经验,尤其是腾讯数据平台部一直在管理的腾讯大数据集群,是世界上最大的大数据集群之一。多年的技术积累,再加上团队不断的苦练内功,都为整个团队在全球计算奥运会上取得瞩目成绩打下了坚实的基础。

解析腾讯云数智分布式系统软件架构

对于腾讯云分布式系统软件架构,可以从海量数据分布式存储、计算任务切片调度、节点通信协调同步、数据计算监控容灾等,以及硬件架构能力,包括服务器硬件选配、网络架构调优、IDC 规划建设等角度来进行剖析。

在硬件和网络方面,分布式系统采取了 IBM 的 Power 和迈络思的 100Gb 网络技术,机器配置选型如下:

网络架构采用了三层架构:

腾讯云大数据服务的实时计算平台能提供单集群上千台规模实时流式计算,在数据存储方面,支持多重数据备份,万亿数据的存储能力。在任务调度方面,支持百万级任务的毫秒级调用。而且支持故障节点自动发现、自动剔除、业务自动迁移、关键节点主从热备,以及故障秒级切换。

本次竞赛中的排序分为 Partition、Shuffle 和 Sort 三个阶段:

  • Partition 阶段,从本地磁盘中读入分片的输入数据,然后对输入数据进行 Range Partition 操作,将数据进行无重叠区间的分片,Range Partition 结束后,输出按照 Range 大小排序的 Range File。
  • Shuffle 阶段,将按照 Range 大小排序的 Range File 文件发送给对应的 Sort 程序。
  • Sort 阶段,Sort 任务等待所需的数据都到齐了,就启动基于基数排序的排序操作,将排序结果写入磁盘。

Partition 和 Sort 阶段是并行执行的,待 Sort 完成后,输出多个排序文件,由于 Shuffle 的时候已经按照 Range 大小进行了排序,最终输出的排序文件在全局是有序的。

软件算法优化

参加这次比赛,腾讯云在软件方面也做了不少优化,重点如下:

1、更高效的调度系统。此次比赛,腾讯云参加了 GraySort 和 MinuteSort 二个大项的比赛,GraySort 比拼的是完成 100TB 的数据排序的耗时,主要评测的是系统对大规模数据的处理能力,MinuteSort 比拼的是 1 分钟内的排序数量,主要评测的是系统的效率。

为了在 1 分钟内完成尽可能多的数据排序,系统任务调度的开销不容忽视,调度效率显得尤为关键,在系统上消耗的时间越少,越利于比赛成绩的提高。得益于平台强大的调度能力,团队在 1 分钟内完成了 55.3TB 数据的排序,是之前最好纪录的 5 倍。腾讯云的调度系统曾做了大量的优化,在腾讯的内部系统上,每天调度达 2 亿次,在海量系统上得到了验证。

2、内存存储的最大化利用。在排序过程中的中间数据,尽量存储在内存中,当内存中数据达到一定阈值,快要占满整个内存空间的时候,才会启动向磁盘中写入数据,最大化利用内存存储。而腾讯云的系统具备调度感知的能力,当系统内存充足的时候,会让该环节的计算任务完全在内存中完成计算,无需落地到磁盘,极大的提升了系统的处理能力。

值得一提的是,腾讯云数智提供的强大数据分析与挖掘探索能力,多维分析引擎可在数秒内完成在亿万级数据、万级维度量级下的分析作业。除了数据分析引擎,数智还囊括了机器学习引擎,内置的算法库均经过腾讯海量数据的训练实操,支持图计算、高性能并行计算、深度学习等。

3、并行操作和 IO 优化。在 Partition 阶段和 Sort 阶段,我们都采取了多任务的并行操作。在这里我们会根据机器和网络的性能来调整机器上的并发数,来提高整个系统的运行效率。为了提升网络的传输效率,优化了整个网络传输系统。在网络的传输中,过小的分片数据会带来额外的控制信息的传输,造成网络带宽实际上并不能完全跑满。对此我们采用大数据块的传输,在发送端对小的数据片进行合并,在接收端,对收到的数据包进行聚合后再传递给上层协议栈,来提高整个系统的数据传送能力,从而榨干这些机器间的网络带宽,通过优化,集群的整体吞吐可以得到极大的提升。

如何应对非结构化数据?

本次竞赛是对数据进行排序,那么在未来,图像、音频等非结构化数据将激增,腾讯云如何更快、更准来进行数据清洗,以应对未来的趋势和挑战?

实际上,目前许多企业都面临着收集到的图像与音频无法高效智能处理的问题。为此,腾讯云的解决方案就是对外开放一系列 AI 产品,如万象优图、人脸识别、语音识别、智能客服等服务。优图系列产品能够快速完成对图片的鉴黄、内容识别、人脸检测;智能语音识别服务可高效地满足语音识别、语音合成、声纹识别等语音处理需求;微金小云客服通过大数据与深度学习训练,可让企业拥有自己专属的 AI 客服。优图的人脸识别准确率已高于人工的识别,微众银行已经将该技术运用到开户流程中,在保证安全性的前提下,极大的提升了开户效率并显著降低成本。企业和开发者可以有效的借助腾讯云开放的腾讯大数据和 AI 能力,来快速分析其存储的非结构化数据,提升企业的核心竞争力。

数智在微信中的应用

微信的数据量之大,众所周知,那么腾讯云具体是如何实现微信每天 160 亿级别的多维分析场景中做到 6 秒返回结果的?

腾讯每天都面临着海量的多维分析计算需求,采用传统的社区组件已经无法保证分析结果的时效性,为此腾讯云大数据团队针对交互式海量数据分析需求而自主研发了秒级分析平台。

腾讯云数智实时检索分析,基于搜索引擎技术,将检索与数据分析有机结合,摒弃传统数据分析系统数据预加工的模式,根据用户输入的个性化数据分析需求实时计算,让系统更加灵活,实现在亿万级数据、万级维度的量级下,用户可以在该平台上进行任意维度组合、任意层级下钻等分析作业,但结果响应只需在数秒以内。

上面所提到的腾讯云数智中的多维分析引擎,采用倒排索引技术结合嵌套列存储技术,解决海量数据秒级分析问题,为大数据分析业务提供一套实时的、多维的、交互式的查询、统计、分析系统。在大数据的统计分析方面提供完整的解决方案,让万级维度、千亿级数据下的秒级统计分析变为现实,为用户提供在短时间内具备秒级响应的实时多维数据分析能力。

夺冠的意义和价值

或许很多读者会问,腾讯云打破 2016 Sort Benchmark 4 项纪录的意义是什么?对业界企业、开发者有什么价值?

对此,腾讯云副总裁、腾讯数据平台部总经理蒋杰作出了解答。他说,此次比赛的结果,是腾讯在多年的海量数据服务经验中,对调度系统不断的进行大量优化的最好验证。腾讯云数智将腾讯多年的大数据处理经验首度开放,能够让社会各界享有与腾讯同级的大数据处理能力。对于企业而言,可以在大幅降低人力成本、快速将大数据平台落地的同时,享有高稳定、高性能、高安全的大数据平台。对于开发者而言,无需将时间精力投入到集群的搭建、改进社区版本稳定性等问题上,从而全力投入进业务层与代码层中。

此次的参赛结果是对腾讯多年海量大数据处理能力的认可,也见证了腾讯云在大数据领域的技术积累。那么此次竞赛结果会对接下来腾讯云的应用和服务产生怎样的影响和推动?

蒋杰说,目前,数智大数据处理套件 TBDS3.0 正式版已经对外发布,数智大数据工坊也在邀测中,可见数智的产品矩阵与能力已经十分完善。同时,腾讯云大数据中的方略产品线,也已经上线了多款产品,包括用户洞察分析、热力图、位置大数据解决方案、舆情监控等等,方略将腾讯数据资产进行有效的整合与安全的利用,让用户使用腾讯云方略即可直接享受大数据资产产生的价值,让企业在信息迸发的时代抢占先机,一同纵横数智、助画方略。

2016-11-15 02:514124
用户头像

发布了 182 篇内容, 共 105.1 次阅读, 收获喜欢 208 次。

关注

评论

发布
暂无评论
发现更多内容

来聊点认证与授权的话题

为自己带盐

.net core OAuth 2.0 Openiddict

git撤销某一次commit提交

树上有只程序猿

git

Java基础!Java反射机制!!

java易二三

Java 编程 互联网 计算机

门槛一降再降,易用性大幅提升!Milvus 2.2.12 持续升级中

Zilliz

Milvus Zilliz 向量数据库

HuntingNFT 全新玩法引爆市场,GameFi掘金新热土?

鳄鱼视界

2 种方式查找极狐GitLab 容器镜像 Tag,几分钟快速构建私有化部署实例

极狐GitLab

DevOps gitlab Helm 容器镜像 Omnibus package

程序员必读十大电子书

六月的雨在InfoQ

电子书 Java工程师成神之路

腾讯云 Cloud Studio 实战训练营活动招募中

CODING DevOps

活动 cloudstudio 云端 IDE

你了解Vue3组合式API吗?

OpenTiny社区

Vue 前端框架 开源组件库

提高代码质量!详解在Gradle项目中使用PMD的正确姿势

树上有只程序猿

Gradle

当流计算邂逅数据湖:Paimon 的前生今世

Apache Flink

大数据 flink 实时计算

QQ开展外挂专项整治,守护用户社交环境安全

极客天地

灵动AI推出业内首个工业级“AI商品图”生成工具 并获小米联合创始人黎万强天使投资

TE智库

给世界一个更好的选择,“龙蜥+超级探访”首期嘉宾预告片震撼来袭!

OpenAnolis小助手

开源 操作系统 龙蜥社区 统信软件 超级探访

【福利活动】深度体验OpenHarmony对接华为云IoT

OpenHarmony开发者

OpenHarmony

如果你在选型低代码平台,可以从这5个角度去分析抉择

互联网工科生

源码 低代码 系统集成 私有化部署

软件测试/测试开发丨Python 装饰器 学习笔记

测试人

Python 程序员 软件测试 装饰器 测试开发

九州八荒录H5游戏详细图文架设教程

echeverra

游戏开发

设计原则 — KISS & YAGNI

Lemoon Can

设计原则 KISS YAGNI

实时数仓:Iceberg

腾讯云大数据

数据仓库

一文帮你全面认识方天视窗引擎

openEuler

Linux 开源 操作系统 openEuler 视窗引擎

我的 Obsidian 笔记跨设备同步方案

专注前端开发

工具 笔记 Obsidian

香港VPS大揭秘:轻松打造超高流量网站

一只扑棱蛾子

VPS 香港VPS

鸿煦科技刘敏:小程序云开发降本增效实践之路

TRaaS

小程序 支付宝 开发

点云标注在自动驾驶中的实时性要求

数据堂

OpenSSL 3.0.0 设计(一)|介绍、术语与架构

铜锁开源密码库

开源 算法 信息安全 密码学 铜锁

98.8秒夺冠,解析腾讯云数智背后的架构与算法优化_大数据_Xue Liang_InfoQ精选文章