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