系统架构师(第2版)第19章 大数据架构设计理论与实践.docxVIP

系统架构师(第2版)第19章 大数据架构设计理论与实践.docx

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第19章大数据架构设计理论与实践

19.1传统数据处理系统存在的问题

随着信息时代互联网技术爆炸式的发展,人们对于网络的依赖程度日渐加深,在业务中需要处理的数据量快速增加,逐渐飙升到了一个惊人的数量级。并且数据产生的速度随着采集与处理技术的更新仍在加快。

数据量从兆字节(MB)、吉字节(GB)的级别到现在的太字节(TB)、柏字节(PB)级别,数据量的变化促使数据管理系统(DBMS)和数据仓库(DataWarehouse,DW)系统也在悄然地变化着。传统应用的数据系统架构设计时,应用直接访问数据库系统。当用户访问量增加时,数据库无法支撑日益增长的用户请求的负载,从而导致数据库服务器无法及时响应用户请求,出现超时的错误。

出现这种情况以后,在系统架构上就采用如图19-1的架构,在Web服务器和数据库中间加入一层异步处理的队列,缓解数据库的读写压力。

当Web服务器收到页面请求时,会将消息添加到队列中。在数据库端,创建一个工作处理层定期从队

列中取出消息进行处理,例如每次读取100条消息。这相当于在两者之间建立了一个缓冲。

但是,这一方案并没有从本质上解决数据库过载(Overload)的问题,且当工作处理层无法跟上业务对于数据修改的请求时,就需要增加多个工作处理层并发执行,数据库又将再次成为响应请求的瓶颈。一个解决办法是对数据库进行分区(HorizontalPartitioning)。分区的方式通常以Hash值作为key。这样就需要应用程序端知道如何去寻找每个key所在的分区。

但即便如此,问题仍然会随着用户请求的增加接踵而来。当之前的分区无法满足负载时,就需要增加更多分区,这时就需要对数据库进行reshard。resharding的工作非常耗时而痛苦,因为需要协调很多工作,例如数据的迁移、更新客户端访问的分区地址,更新应用程序代码。如果系统本身还提供了在线访问服务,对运维的要求就更高。这种情况下,就可能导致数据写到错误的分区,因此必须要编写脚本来自动完成,且需要充分的测试。

由此可见,在数据层和应用中增加了缓冲隔离,数据量的日渐增多仍然迫使传统数据仓库的开发者一次又一次挖掘系统,试图在各个方面寻找一点可提升的性能。架构变得越来越复杂,增加了队列、分区、复制、重分区脚本(ReshardingScripts)。应用程序还需要了解数据库的schema,并能访问到正确的分区。问题在于:数据库对于分区是不了解的,无法帮助你应对分区、复制与分布式查询。

最严重的问题是系统并没有对人为错误进行工程设计,仅靠备份是不能治本的。归根结底,系统还需要限制因为人为错误导致的破坏。然而,数据永不止步,传统架构的性能被压榨至极限,检索数据的延迟和频繁的硬件错误问题逐渐使用户不可接受,在传统架构上进行继续挖掘被证明是“挤牙膏”。帮助处理海量数据的新技术和新架构开发被提上日程,以求得让企业在现代竞争中占得先机。

越来越多的开发者参与到新技术与新架构的研究探讨中,结论与成果逐渐丰硕。人们发现,当系统的用户访问量持续增加时,就需要考虑读写分离技术(Master-Slave)和分库分表技术。常见读写分离技术架构如图19-2所示。现在,数据处理系统的架构变得越来越复杂了,相比传统的数据库,一次数据处理的过程增加了队列、分区、复制等处理逻辑。应用程序不仅仅需要了解数据的存储位置,还需要了解数据库的存储格式、数据组织结构(schema)等信息,才能访问到正确的数据。

随着技术的不断发展,商业现实也发生了变化。除了要求同一时间内可以处理的数据量提升,现代商业要求更快做出的决定更有价值。现在,Kafka、Storm、Trident、Samza、Spark、Flink、Parquet、Avro、Cloudproviders等新技术成为了工程师和企业广泛采用的流行语。基于新技术,不少企业开发了自己的数据处理方式,现代基于Hadoop的Map/Reduce管道(使用Kafka,Avro和数据仓库等现代二进制格式,即AmazonRedshift,用于临时查询)采用了如图19-3所示。

这个方式虽然看起来有其非常好的优势,但它仍然是一种传统的批处理方式,具有所有已知的缺点,主要原因是客户端的数据在批处理花费大量时间完成之前的数据处理时,新的数据已经进入而导致数据过时。

基于传统系统出现的上述问题和无数人对于新技术的渴求与探讨,“大数据”的概念被适时的提出,研究与设计大数据系统成为了新的风潮。我们要学习的大数据系统架构设计理论,正是为了解决在处理海量数据时出现的种种问题,并让系统在一定的度量属性下

您可能关注的文档

文档评论(0)

写作能手瓜皮肖 + 关注
实名认证
服务提供商

信息系统项目管理师持证人

(1)深耕智慧园区10年+ (2)IoT产品专家 (3)工业4.0领头羊 (4)就业咨询指导5年+ (5)方案输出百万字+

领域认证该用户于2023年05月18日上传了信息系统项目管理师

1亿VIP精品文档

相关文档