2016美国QCon思考:通过Quora和Spotify案例,直击数据处理背后的魅影

编者按:大数据的题目看起来好写,因为大家似乎都懂,但是其实也难写,因为太大了,没有具体的问题很难写出有营养的东西,所以今天选取两个QCon比较典型的例子来管中一窥大数据的魅影。

    有的同学很困惑米国人不看知乎怎么知道那么多知识呢?米国人当然看Quora啦,Quora是一个问答社交软件,问答社交的特点就是有各种各样的计数器,比如帖子的支持、反对、评论数量,用户的关注、粉丝数量等等,随着用户量的增加、帖子的增多、以及带来的互动的增长,Quora处理的数据也是爆炸式增长。Quora从第一天开始就长在云上(AWS),生产环境使用MySQL和HBase做存储,使用RefShift和Spark用来做数据分析,在这些组件的基础上Quora做了一个数据服务叫Quanta,Quanta的设计约束是:

A:数据更新之后不能丢失,要求持久化到disk

B:有billion级别的counter,单机放不下,所以需要分布式集群

C:每秒写>10W次,每秒读>100W次,只能用追加写

D:读写都要很快

E:资源和负载能够线性扩展,而且能够扩展到目前负载的50倍

F:成本越低越好

 

Quora还有很多基于时间序列数据计算,比如:

A:过去T时间内发生了什么,基于滑动窗口

B:过去Y时间内每隔X该事件发生了多少次,需要访问历史存储数据

C:X和Y可以是任意的

 

还有比较复杂的计算是关系图引入的多层聚合,如:

对于图有两种计算方式,一种是lazy update,只更新单个节点,关联节点在有读操作发生时再触发,一种是eager update,每次update都触发整个关联图的更新,Quora最终采用的是eager update,理由是:每次读的时候都去做一次更新会加大延迟,不可接受;更新即使慢也没关系,因为是异步的;图更新比起读操作还是极少的。当然有向无环图DAG有多种形状,有线性的、菱形的,每种图上的counter更新算法也略有不同,不再赘述。

 

    整个Quora的架构大概是这样子的:

    客户端写日志到一个journal系统,数据处理Processor从journal系统不停pull数据然后分别更新图和counter存储服务,客户端从counter服务读数据,写操作是追加数据到journal服务,update操作是以thrift message的形式来封装的,所以可以支持各种各样的client;Processor是stateless的异步服务,可以批量读取数据并做处理;counter存储服务用的是HBase,理由是每个计数都可以利用column family字段来保存若干个时间窗口的数据,比如一天的、一周的等等,而且schema还可以随时改变,当设置TTL的时候数据还可以自动过期,吞吐量也足够大;图服务用的也是HBase,每一个row就是图的一个edge,column family存储的是入边和出边,而且通过设置bloom filter还可以实现negative查询,这些模型都比较适合图运算。

    目前存在的问题是当Processor处理update数据的时候可能会存在两个job处理同一个图的不同vertex的问题,Quora对这个问题的解法也比较巧妙,就是通过简单的算法将整个连通图隔离出来,这个子图中的所有节点都只会在一个job中去运算,这样就解决了冲突的问题。

    总结下来Quora将数据做了很好的model,主要分为两大类,有计数的、有图的,然后对两类数据分治处理,尤其是在处理图数据的时候通过将图分割来解除依赖,所以不需要加锁,极大提升了并行度;对系统也做了很好的设计,比如写和更新解耦、更新可弹性伸缩、存储采用HBase更为灵活,当然前提是要对业务有深度思考并对约束有清晰的判断。

 

    接下来的案例是Spotify,Spotify的问题是成长太快,在流量和用户快速增长的时候,系统服务依赖也成指数级别增长,由于整个架构缺乏体系的思考和设计,所以在服务多了之后就出了一系列的问题,如隔三差五的小故障、Hadoop挂掉、数据重复处理、很多数据流水线上的bug无法追查等等,针对这些问题,Spotify做了一系列的改造。

    首先是先暴露问题,做早期报警,然后做了一个有领域编程语言支持的监控工具Datamon,Datamon不仅仅做报警,更重要的是对数据的所有权进行了划分,这是一个比较大的进步,报警大家都会做,但是把报警发给谁是一个更有挑战的问题;针对调度和计算不好debug的问题做了一套叫Styx的服务,Styx的每一个job都用docker来做隔离,也暴露了更多的debug信息出来,易用性上也比之前有很大提升,具体实现细节没有多讲;最后一步为了实现弹性扩缩容利用Kubernetes做了一套系统叫GABO,不再赘述。

    从Spotify这个例子可以看出如果一个架构师或者CTO没有从体系上和整体架构上去思考问题,业务发展越快跪得越快,给飞机换轮子听着很英勇但是能避免的还是尽量提前避免。

    通过上面这两个例子我们也能看出无论目前有了什么样的工具、多么牛逼的产品,定义问题、提炼需求、确定问题边界反而比直接去写代码更有价值,这才是我们的核心竞争力,这些技能也就是我们平时所倡导的调研和思考,用在思考上的时间多了用在擦屁股上的时间也就少了,与君共勉。

时间: 2024-10-03 19:26:06

2016美国QCon思考:通过Quora和Spotify案例,直击数据处理背后的魅影的相关文章

QCon思考之通过Quora和Spotify案例,直击数据处理背后的魅影

有的同学很困惑米国人不看知乎怎么知道那么多知识呢?米国人当然看Quora啦,Quora是一个问答社交软件,问答社交的特点就是有各种各样的计数器,比如帖子的支持.反对.评论数量,用户的关注.粉丝数量等等,随着用户量的增加.帖子的增多.以及带来的互动的增长,Quora处理的数据也是爆炸式增长.Quora从第一天开始就长在云上(AWS),生产环境使用MySQL和HBase做存储,使用RefShift和Spark用来做数据分析,在这些组件的基础上Quora做了一个数据服务叫Quanta,Quanta的设

2016美国QCon观察:容器与调度这么热,未来会是怎样的一个趋势?

编者按:今年QCon容器/Docker和微服务几乎占据了会场的半壁江山,大家也都趋之若鹜场场爆满,而且作为一名云计算工程师,对容器/Docker也是格外关注,容器/Docker已经不仅仅是个技术,而是作为一个生态在深刻影响着每一个细分行业,对于每个行业既是机会也是挑战,稍有不慎可能就会被时代抛弃.作为与会者现场聆听大家对容器/Docker的思考和应用,并逐步廓清现状和未来,与大家共同学习.     容器(Container)是近些年迅速火热的一门技术和话题,容器技术本身和在容器之上衍生的资源编排

2016美国QCon“见证”:IoT未来已来,我们应该关注什么?

编者按:IoT一直是雷声大雨点小,但是在今年的会议上无论是演讲篇幅还是披露的相关进展都在预示着一个新的时代的来临,IoT的爆发只是个时间的问题,等待的只是那个临门一脚,正如智能手机爆发的前夜.IoT相关的技术储备从标准.硬件到软件生态都已经就绪,从商业上来看IoT也在各个领域如物流.医疗健康.智能硬件.汽车等行业慢慢渗透,但是目前IoT的价值还没有完全显现出来,IoT的核心还是在于数据,只有当数据产生.蓄积.流转并产生价值之后IoT才会展现出他真正的威力和应有的地位.          IoT(

2016美国Qcon解读:传统与新兴领域的融合——NewSQL的兴起与云化

编者按:最近10年数据库领域的发展路径基本可以概括为SQL->NoSQL->NewSQL,NewSQL支持传统的SQL协议,但是无论是在功能还是在底层存储上都发生了巨大的演进,在功能上支持如Json.全文索引.地理位置.K-V等丰富的功能,在存储引擎上支持如WiredTiger.RocksDB.MMAP等,MongoDB就是NewSQL的代表之一,本文重点介绍.     本次旧金山QCon大会NoSQL和NewSQL也是重点话题,当然NewSQL还是更火热一些,其中的典型代表就是MongoDB

2016美国QCon看法:新思潮,NoSQL与DPDK、RDMA等技术会擦出什么样的火花?

编者按:NoSQL发展到今天虽然在技术和生态上已经非常成熟,但是并没有停止演化,尤其是在一切都容器化.微服务化的大背景下,很多NoSQL产品也在拥抱Docker,在硬件和系统技术栈上,新技术也是层出不穷,如用户态TCP/IP协议栈.DPDK.RDMA等,这些技术和NoSQL结合之后会擦出哪些火花呢?本文就容器化的典型例子AeroSpike和技术全面领先的ScyllaDB做大概介绍.       在新技术层出不穷的背景下,NoSQL也在努力求变,今年大会有几个新的演变方向,分别是:     容器化

2016美国QCon看法:在Beam上,我为什么说Google有统一流式计算的野心

编者按:流式计算(Stream Processing)在经历了若干年的发展之后,已经有了比较完整的生态,如开源的Storm, Flink, Spark等,未开源的如Google的DataFlow,几乎每个巨头都有自己的流式计算系统.生态虽繁荣但分散,各个平台之间也是互不兼容的,一个平台上写的程序很难移植到另外一个平台,这些领域难题再加上Google大一统流式计算的野心催生了Apache孵化器的新项目Beam.            Google是最早实践大数据的公司,目前大数据繁荣的生态很大一部

2016美国旧金山QCon序:硅谷加班或是常态 有的晚上8点才有晚餐

    这次会议的全称是2016 San Francisco QCon,顾名思义是在旧金山开的,而旧金山又比较接近硅谷,所以有很多硅谷的公司参加了本次会议并带来了很多有意思的议题,对于公司来说,参加这种会议很有必要,既可以跟上前沿的节奏,也可以从侧面了解硅谷是如何思考问题的.这次集团委派了多个子公司各个技术领域相关的七.八人参与该大会,我也是其中之一.     参会之前拿到了会议三天的所有议程表,从安排篇幅就可以看出今年大会的几个重点:Docker/容器,MicroService/微服务,Jav

2016美国旧金山QCon:参会后记

   姊妹篇,点击进入:2016美国旧金山QCon序:硅谷加班或是常态 有的晚上8点才有晚餐     整个QCon会议的行程只有三天,我们是提前到了两天在当地转了转,开完会后又去硅谷拜访了几家公司,白天听讲座,晚上写总结,整体行程还是比较紧张的,而且在QCon会议期间不仅赶上了国内的双11还赶上了美国大选,所以这次QCon不仅仅是参加了一个会议,也许还见证了一段历史.     言归正传,这次会议还是比较成功的,整个会场的安排也是比较舒服,会场在Hyatt Regency Hotel,我们也直接住

2016美国大选预测失败意味着什么?14位专家帮你分析数据科学的未来

雷锋网按:2016年眼看就要结束,外媒KDnuggets近期就机器学习.人工智能.大数据.数据科学和预测分析等领域在2016年取得的主要发展,以及2017年可能发生的变化趋势,询问了业内诸多的专家学者,组成了一个系列文章.昨天,雷锋网(公众号:雷锋网)编译了其中关于大数据的文章:<大数据领域在2016年都有哪些成果及趋势?听听8位专家怎么说>,今天带来关于数据科学和预测分析的部分. 本文中一共采访了14位数据科学和预测分析领域的专家.除了表示大数据和预测分析技术将在2017年度得到更大的发展之