写点什么

明略千亿大数据处理能力是如何炼成的?

  • 2021-05-18
  • 本文字数:5906 字

    阅读完需:约 19 分钟

明略千亿大数据处理能力是如何炼成的?

网购、叫车、订外卖、看电影......移动互联网各种场景的背后都离不开大数据技术。经过十几年的发展,大数据技术已经成为互联网企业的基础设施。

源起谷歌“三驾马车”

聊起大数据,就绕不开谷歌的“三驾马车“。早在 2003 年,谷歌发表第一篇论文——谷歌文件系统(GFS);第二年,谷歌再次发表一篇论文——分布式计算框架 MapReduce;2006 年,谷歌发表第三篇论文——NoSQL 数据库系统 BigTable。这三篇论文由此开启了大数据时代。


徐飞在《大数据浪潮之巅:新技术商业制胜之道》一书中写道,“通过‘三驾马车’这一利器,谷歌具备了存储和分析海量数据的能力,其个性化广告系统犹如永动的印钞机,不断为谷歌赚取财富。”


受谷歌“三驾马车”的影响,其他互联网公司也在尝试大规模分布式系统,希望构建强大的数据存储、分析和处理平台。


不过,当时正处于前 Hadoop 时期,互联网公司基本上都在摸着石头过河。

数据收集和计算领域的先驱

在众多的互联网公司中,成立于 2006 年的秒针系统无疑是这个领域的先行者。据秒针系统产研中心负责人刘沛 介绍,2008 年 Hadoop 还没有成熟,他们从零研发了自己的大数据平台,“思路跟 Hadoop MapReduce 类似,一天也能处理几十亿数据”。


刘沛在 2007 年加入秒针,那时他还在读大三。一年后,他正式毕业,留在秒针系统。他先后领导了包括广告监测系统 AdMonitor 等核心产品的研究和开发。作为秒针系统的老人,他见证了秒针系统大数据平台从 0 到 1 的过程。


据悉,秒针系统的业务是广告监测,核心产品是 AdMonitor。在 AdMonitor 的服务链路中,前端负责收集数据。每个广告会被嵌入一个发送到秒针系统域名的代码。一旦广告在媒体端被点击,它就会把被嵌入的代码发回到秒针系统的服务器。这样,系统就知道完成了一次广告曝光。这样的一个广告业务流程主要涉及数据采集、数据存储、数据计算和数据分析技术

多端收集数据

那么,第一个问题来了,秒针系统怎么收集数据?据刘沛介绍,在 PC 时代,大多使用 JavaScript 来采集数据。这就要求秒针系统的产品要适配每一个浏览器,包括 Firefox、IE、傲游浏览器、海豚浏览器等。据悉,cookie 是当时数据收集使用的主要技术之一。除 cookie 之外,结合 Flash。那时,几乎所有的广告都是 Flash,因为 Flash 本身是一个可执行程序,所以能在其内部编程,把监测代码放在里面,收集数据。


刘沛表示,“Flash 也有 cookie 的概念,技术术语叫 FSO。把 FSO 和 cookie 做各种联动,实现持久化。这边删了,那边能恢复;那边删了,这边再恢复。在保护用户隐私的前提下更精准地识别出一个独立用户。”


到了 2012 年,智能手机出现,Android 和 iOS App 数量不断增多,秒针系统又在 AdMonitor 产品中增加移动端广告测量能力。SDK 技术成为当时移动端数据收集的主要方式。刘沛称,“Android、iOS 都是新事物,不仅要学习新的编程语言,还要面对新技术环境进行开发。做出一款应用后,要适配厂商不同机型的不同型号。除硬件外,还要适应手机上运行的各种 App”。


举个例子,爱奇艺、优酷和腾讯视频是三大主流视频 App。SDK 要在之上运行,前期要做各种对接测试,保证运转正常。“不能让 App 死机,也不能拖慢了它的系统运转。另外,数据采集结果要和他们上报的一致。因此,每加入一款主流 App,都得做技术对接和数据测试。”他说。


2012 年 8 月,秒针系统正式推出中国第一个移动端广告加载 SDK,“很快就被加进了主流的 App 中”。

用 RAID 5 搞定数据存储难题

时任秒针系统大数据平台运维负责人任鑫琦向 InfoQ 记者透露,秒针系统的业务量当时非常大,占到全国所有广告监测流量的 60%,收集数据的服务器每天 PV 量超过 100 亿。


这么多数据,如何存储?据刘沛介绍,当时使用了 RAID(独立磁盘冗余阵列)技术,具体说是 RAID 5 技术:数据在写入磁盘时,将数据分成 N-1 份,并发写入 N-1 块磁盘,校验数据螺旋式写入所有磁盘。这样保证了 RAID 5 既有较快的访问速度,又有较高的数据可靠性。


用刘沛的话解释,“一个集群中,一份数据被切片后存在不同地方。如果一块磁盘销毁了,还能从别处恢复”。

百亿规模的数据计算问题,怎么解?

数据收集上来后,关键是数据计算。任鑫琦介绍,计算分为两类:第一类是按小时进行批量计算,这要求平台具备大规模数据的处理能力。第二类是实时计算,这要保证实时计算的可靠性,否则计算延迟,“客户看到的数据就不准确”。


据悉,秒针系统当时一天有 100 多亿数据。其单台日志服务器的承载性能是“满负荷运行,一天可以处理 4 个亿的数据”。实际中,一般按照 50%的负载使用率,即一台日志服务器一天要处理 2 亿数据。这样算下来,大概需要 50 台日志服务器。


当数据量超过一台服务器的承载能力时,前端要分成很多台服务器做负载均衡。比如,监测代码加在各种各样的媒体上,每个广告主在多个媒体上投放,而每个媒体同时又承载多个广告主,每个媒体又有不同的广告位,“所以要把这些全部用监测代码 ID 索引好”。


刘沛称,“每个广告被曝光或点击时,这条请求是发到了哪台服务器,都要有一套统一的调度规则,保证每台服务器的承压一致,保证每台服务器分工合理。这样整体性能就会最好”。


在数据计算架构上,由于 Hadoop 当时不成熟,所以秒针系统使用了一个开源的分布式文件系统 KFS。任鑫琦说:“基于 KFS,我们没有用 Hadoop 零点几版本的架构,因为不太稳定,其管理节点不是高可用的。”Hadoop 在 2.0 版本之前,其 NameNode 只有一个,一旦坏了,整个集群就会崩溃。所以,自己维护了一套分布式计算任务的调度工具,把顺序调度和背序调度相结合,再加入一些针对局部的调度技巧和优化。

Hadoop 助力,技术能力再上一层楼

2012 年,Hadoop 发布 2.0 版本。它是一套全新架构,包含 HDFS Federation 和 Yarn 两个系统。相比 1.0 版本,它更稳定,也更成熟。因此,秒针系统开始逐渐采用。但系统迁移并不是那么容易,花了一年的时间才成功切换到 Hadoop 上。


刘沛说,一方面,版本不稳定;另一方面,所有人都是新手。出现问题找不到原因时,刘沛他们就到 Hadoop 开源社区去问,有没有人遇到同样问题。如果其他人也遇到这个问题,大家就一起讨论怎么办。而有的问题,”没有其他人遇到,就只能自己看源代码,想办法解决,解决不了的,再找别的解决方案,用别的东西来实现或自己写代码实现“。后来,随着故障的不断减少,技术人员的经验越来越丰富,迁移到 Hadoop 上的大数据平台也愈加成熟和稳定,能力变得更强。


2014 年,秒针系统达到一个新高度——实现日均最高千亿级广告请求处理能力

站在秒针系统肩上的明略

2012 年,大数据的概念开始火起来。此时,Hadoop 生态圈的重要角色都已入局,包括 Facebook、LinkedIn 和 Twitter 以及 Hadoop 三大发行商 Cloudera、MapR、Hortonworks。整个生态的蓬勃发展和日益完善让 Hadoop 的市场前景变得更美好。


于是,从秒针系统孵化出一个小团队,目标是做定制化大数据平台。这样,明略诞生了。


任鑫琦被抽调到明略,开发大数据平台。相比以前,开发一个大数据平台相对更容易,因为秒针系统的实践积累了一些经验,并且 Hadoop 生态发展越来越完善,有更多的工具可以利用。

技术选型

据任鑫琦介绍,技术选型的一个标志是 Hadoop 在 2.0 时提出了 NameNode HA 框架,加入选举机制和控制组件,可以实现大于 3 的奇数个管理节点的配置。当一个管理节点宕掉,马上会选出第二个管理节点,这是一个真正的高可用状态。


此前,他们虽然一直关注 Hadoop,但是却没采用,原因之一是 Hadoop 1.0、1.1 版本,只有一个核心管理节点 NameNode。后来,它引入 Second NameNode,即有一个主活管理节点,有一个备用节点,这两个节点实时同步。如果主节点服务宕掉了,备用节点会提醒并继续管理这个集群。但是,它其实并非高可用,“因为服务要切换,并且 Second NameNode 也会有问题”。


他说:“在 Hadoop 2.0 时,我们认为它达到一个基本工业级可用的状态。只要整个集群不出太严重的问题,一些细节问题,比如计算效率问题、任务调度问题等,我们可以通过修改开源代码,或调整执行任务,优化任务策略,慢慢改进。“


因此,明略就把所有的技术体系切到 Hadoop 上面。


2014 年 7 月,明略发布大数据平台 1.0 版本。据悉,1.0 版本已经相当成熟,“在集群上架的服务器系统装完情况下,网都通了,不能说完全一键部署,但是点几键就能搞定部署。半小时左右就可以完成一个大数据整个生态体系的部署和安装“。


这一年,明略数据成功中标中国银联项目,这是它在国内第一个大的企业级客户。任鑫琦称,“当时,任何成熟的(大数据)部署体系都无法做到半小时完成整个集群的部署安装和配置工作。这是我们成熟的一个标志”。

发力知识图谱

基于已有的大数据技术,明略在 2015 年继而研发出知识图谱,核心产品是 SCOPA。


自己的大数据发展蒸蒸日上,为什么要去做知识图谱?现任明略科技集团副总裁任鑫琦解释,第一,知识图谱技术源于搜索引擎,它把所有网页和内容做知识化管理,这样能更好地理解用户搜索意图,提供用户想要的内容和结果。第二,差异化竞争。他说:“如果能把大量的结构化数据,从原来简单数仓的计算一些报表,做一些查询,转换思路,从中抽出它本身的含义,组织成业务知识,更有效地组织数据,并且实现数据增值。这就可以跟业界很多做通用大数据处理的公司实现差异化。“


不过,他也坦承,基于大量数据做知识图谱有着不小的难度。


  • 难度一,数据量非常大,这涉及到整个的实时数据处理能力,包括数据融合问题、数据冲突问题。同时,业界也没有参考的。

  • 难度二,每个行业要建立领域知识图谱。“这与过去的专家系统很像。知识图谱的价值有多大,关键在于行业领域知识图谱的定义,每个行业都要跟业务专家探讨知识图谱的设计,同时不停地迭代,做各种改进,这很难“。

  • 难度三,知识图谱要与一些 AI 技术相结合。知识图谱的主力场景是“从大数据里捞知识”,最基础的是实体与关系。据任鑫琦介绍,针对实体要做两件事:一是数据融合,二是给实体打上明确标签。但是实体种类非常多,怎么打标签,要使用很多 AI 技术。而关系的质量和数量决定了整个知识图谱组织形式的质量,”关系没有处理好,整个知识图谱的可用性就会降低,它的推荐、推理、交叉分析就用不起来。关系的处理也要用到很多的 AI 技术“。


更重要的是,与之前相比,知识图谱对背后支撑的技术平台要求更高。为此,任鑫琦他们在 2015 年决定做一个混合型知识图谱数据库。那么,这个混合型知识图谱要解决三个核心问题:


  • 一是知识图谱要能实现全文式的定位式索引查询,比如根据一个关键词定位到知识图谱的某个点,这需要有一个全文的检索系统;

  • 二是知识图谱会有很多的条件查询,比如常规的大数据计算,按照哪一个 Key 和 ID,做查询、统计分析;

  • 三是知识图谱要有图,要完成关系的推演,包括关系存储。


这就要求既有全文,又有大数据,还有图。同时,还要把这三个存储融合在一起,做好统一索引和管理。


据任鑫琦透露,他们的解决办法是把 Elasticsearch、HBase 和图数据库 Titan 做了一致性索引的融合,包括统一的数据存储的路由、性能优化。


他说:“这个问题解决后,像怎么做业务定义、怎么描述图谱的语义等问题都可以用这个混合型数据库实现。大规模数据的融合、实时数据计算或高性能计算,这个混合型知识图谱数据库都可以用不同的特性支持每天更新,甚至是实时更新。”

明略知识图谱的技术架构

据悉,明略知识图谱的架构如下图所示:



这个架构体系中,前端有数据接入、数据汇总。之后,数据清洗,进行知识图谱构建。在知识图谱里,还有实体构建、实体标签的构建、关系构建等。同时,还有图谱事件类或者行为类数据的构建。这是一整套数据处理的基础流程。往后,把这些数据加载到图数据库。在这之上是基于知识图谱的可视化交互分析系统。


知识图谱的技术架构仍以 Hadoop 为核心,数据接入上,最早用 Flume(现已切换到 Kafka)。据任鑫琦介绍,”如果对接的是数据库系统,用的是 Scoop 1.0 和 2.0。数据抽取上来后,如果不属于日志型、库表型,用脚本方式抽取到平台上,落地到 HDFS;如果是结构化数据,直接落成 Hive 表。基于 Hive 层完成整个数据清洗、融合、转换和知识图谱构建工作,基本上用 Spark 实现整个的数据治理过程。如果是实时计算,用的是准实时 Spark Streaming 的技术选型,因为这可以减少更多相关组件的引入”。


简言之,核心图谱库的架构和支撑基本是一个以 Elasticsearch、HBase 和 Titan 三个库为核心的综合混合型数据库。


据悉,2015 年底,明略知识图谱就在国内一个省会市级公安局落地,为公安做数据分析,包括线索挖掘、团伙预警,协助公安破案。


2016 年到 2017 年,任鑫琦带领团队探索知识图谱在更多行业的落地和应用,目前,明略知识图谱在公安、金融、工业和数字城市等领域得到广泛应用。

回看大数据 15 年发展

2019 年,大数据进入后 Hadoop 时代,各种实时架构和组件大规模发展,大数据技术也与云原生、人工智能深度融合。


回顾大数据过去几年的发展,任鑫琦把它概括成三个阶段:


  1. 阶段一,大数据初期,以卖硬件和炒作概念为主。2010 年左右,很多大型企业受市场和宣传影响建设了大数据平台,但没有发挥出作用,因为脱离业务。

  2. 阶段二,大数据进一步发展,以分析型为主。2014 年,企业对大数据的认识进一步深入,通过收集更多数据,帮助业务决策。

  3. 阶段三,大数据发展成熟和稳定,以实时性分析为主。架构上,Lambda 架构和 Kappa 架构广受欢迎, Flink、Kafka 的使用越来越广,业务对实时性要求越来越高。“实时分析意味着实时性的决策和实时的价值,这对业务系统直接产生影响”。以银行为例,一个人申请贷款,是否放贷,银行要做大数据风控,进行实时分析。因此,这个阶段要求大数据的实时性更高,更轻量级的组件和更先进的技术。


任鑫琦说:“现在,大数据已经发展到一个精细化阶段。”


以前,人们对数据的认识是单点的、孤立的,理解很浅,比如先汇总数据,再慢慢挖掘和分析,但这可能汇总大量无效、无关的数据,这些数据对整个数据体系的业务价值会有负面影响。这些年,人们对数据有了新认识,比如数据并非越多越好,要规划好数据怎么存、怎么用、怎么产生更大价值。这就要求大数据越来越精细化和精准化!

写在最后:

从 2003 年谷歌的“三驾马车”到现在,大数据技术历经十余年发展,明略也见证了它从风口到落地再到大规模的普及应用。2007 年,明略就投身大数据行业,从零到一研发出一套成熟的大数据平台,解决了大数据存储和大数据计算问题。此后,基于秒针系统积累的大数据能力,明略成功研发出知识图谱平台,并在行业里得到广泛应用。今天,大数据技术正与云原生、AI 技术相融合,数据驱动成为共识,作为行业先行者,明略一直深耕技术,从未止步,让数据产生更大价值、发挥更大作用。

2021-05-18 11:015820
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 359.4 次阅读, 收获喜欢 1800 次。

关注

评论

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

想要了解华为IPD,先要了解需求如何管理!

华为云PaaS服务小智

需求管理 软件开发 华为云

强大防护:如何选择最佳美国高防服务器租用服务

一只扑棱蛾子

美国服务器 美国高防服务器

软件测试/测试开发/全日制 | 实现实时通信:Python全栈开发中的WebSocket实践

测吧(北京)科技有限公司

测试

免费部署试用的低代码开发工具分享(100%源码)

互联网工科生

低代码 JNPF

软件测试/测试开发/全日制 | Python全栈开发中的消息队列应用

测吧(北京)科技有限公司

测试

你的数智化底座物尽其用了吗?

用友BIP

数智底座

圣诞节来临,如何用海外云手机给亚马逊店铺引流?

Ogcloud

云服务 手机云服务 云服务商

云渲染电脑可以关吗?瑞云渲染客户端能断开网络吗?

Renderbus瑞云渲染农场

云渲染 渲染农场 瑞云渲染

软件测试/测试开发/全日制 | Python全栈开发:利用Docker实现应用容器化

测吧(北京)科技有限公司

测试

深入理解经典红黑树 | 京东物流技术团队

京东科技开发者

CSIG青年科学家会议圆满举行,合合信息打造智能文档处理融合研究新范式

合合技术团队

科技 大模型 合合信息 GPT-4

效果图渲染角度哪什么小技巧?10个效果图渲染技巧

Renderbus瑞云渲染农场

云渲染 渲染农场 瑞云渲染 Renderbus云渲染农场 效果图渲染

React Native 打包 App 发布 iOS 及加固混淆过程

如何将支持标准可观测性协议的中间件快速接入观测

观测云

可观测性 HBase

AI大模型与低代码开发应用的完美融合

EquatorCoco

人工智能 AI 低代码 大模型

专业开发者的软件开发神器——低代码

高端章鱼哥

软件开发 低代码

Sound Control for Mac(mac应用音量控制软件) 2.6.4中文激活版

mac

苹果mac Windows软件 sound control

软件测试开发/全日制丨面试题:中间件-淘汰缓存还是更新缓存

测试人

redis 软件测试 面试题 中间件 测试开发

软件开发项目延期,这么做项目保证按时交付

软件开发-梦幻运营部

CloudXR在农业领域的用例表现

3DCAT实时渲染

CLOUDXR 云化XR

软件测试/人工智能/全日制 | Python全栈开发:理解HTTPS加密机制与安全传输

测吧(北京)科技有限公司

测试

多策略深度智能分货拣货,助力快消品企业提升核心竞争力

用友BIP

软件测试/测试开发/全日制 | 从MySQL到MongoDB:Python全栈开发中的数据库选择

测吧(北京)科技有限公司

测试

iZotope RX 10 for mac(音频修复和增强软件) 10.4.2完美激活版

mac

苹果mac Windows软件 iZotope RX 10 音频修复和增强软件

软件测试/测试开发/全日制 | 从HTML到React:Python全栈开发中的前端框架应用

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | 前后端数据交互与Fetch API应用

测吧(北京)科技有限公司

测试

海外网络加速:突破地域限制,畅联全球

Ogcloud

网络 网络加速 vpn 网络VPN

软件测试/测试开发/全日制 | Python全栈开发中的前端工具与构建流程

测吧(北京)科技有限公司

测试

明略千亿大数据处理能力是如何炼成的?_大数据_万佳_InfoQ精选文章