五个顶级的大数据架构----大数据程序员必修课

自从像AWS这样的公共云产品开辟了大数据分析功能以来,小企业通过挖掘大量的数据做到只有大企业才能做到的事情,至今大约有10年时间。这些事情其中包括网络日志、客户购买记录等,并通过按使需付费的方式提供低成本的商品集群。

自从像AWS这样的公共云产品开辟了大数据分析功能以来,小企业通过挖掘大量的数据做到只有大企业才能做到的事情,至今大约有10年时间。这些事情其中包括网络日志、客户购买记录等,并通过按使需付费的方式提供低成本的商品集群。在这十年中,这些产品蓬勃发展,涵盖了从实时(亚秒级延迟)流媒体式分析到用于分析批量模式工作的企业数据仓库,而企业数据仓库则可能需要数天或数周才能完成。很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系。

以下将介绍用于大数据堆栈的五个最有用的架构,以及每个架构的优点,以便更好地理解和权衡。此外,还对成本(按$ - $$$$$的规模)、何时使用、热门产品,以及每种架构的提示和技巧进行了阐述。

|| 五个大数据架构

在此并没有什么特别的顺序,用户在AWS公共云旅程中可能遇到的五个顶级大数据架构是:

?流媒体- 允许摄取(并可能分析)任务关键型实时数据,这些数据可能会以爆发的形式出现在用户面前。

?通用(或特定)的批处理集群—在可扩展、经济高效的集群中提供通用存储和计算功能,可以执行其他四种架构的任何和所有功能。

?NoSQL引擎 - 使架构师能够处理“3V” —高速度、高容量,以及底层数据的多样性/可变性。

?企业数据仓库(EDW) - 允许组织为多年的历史数据维护一个单独的数据库,并对该数据运行各种长期运行的分析。

?就地分析 - 允许用户将数据“就地”保存在低成本存储引擎中,并针对该数据运行高性能的即席查询,而无需创建单独的、昂贵的“集群”。

(1)流媒体

流媒体解决方案由以下多个因素定义:

?关键任务数据—即使丢失一笔交易也会给用户带来灾难性的后果。

?负载中的爆发尖峰——物联网的基础设施可能会从完全无声的状态转变为同时与其通话设备中的一个。

?实时响应 - 高延迟响应对用户来说可能是灾难性的。

这里有很多现实世界的例子,从特斯拉公司的电动汽车(基本上是移动的4G设备)不断将汽车的位置发送到数据中心,通知司机下一个充电站在哪里。此外,人们喜欢的日本一家高度自动化的寿司专营店:Sushiro。Sushiro所做的是将RFID传感器放在每个寿司盘底,然后,寿司传送带上的传感器跟踪每个盘子的动态,将数据点发送到AWS Kinesis,其后端响应仪表板的更新,通知寿司厨师,例如“丢掉即将过期变质的食物,或者制作更多的鸡蛋寿司,或者解冻更多的金枪鱼”,通过使用流媒体技术,该连锁店不仅有上述的实时效率推荐,而且还可以获得每家餐厅的历史信息,并且可以了解顾客购买的趋势。

Sushiro是一个很好的例子,因为它符合流媒体的所有三个要求。其仪表板现在对业务运营至关重要。

?成本:$$ - $$$$$(通常为RAM密集型)

?适用性:任务关键型数据,负载爆发尖峰,实时响应。用户需要构建KPI的实时仪表板。

?注意事项:独立的流媒体解决方案的构建和维护成本很高。扩展可能具有挑战性,特别是如果在EC2上构建。失败对企业来说可能是灾难性的,但大多数产品都提供故障保护,例如复制优化、备份和灾难恢复,以避免这种情况。

?受欢迎的产品:Kinesis(托管服务),Kafka(基于EC2),Spark Streaming(作为托管服务和基于EC2)和Storm。

?提示和技巧:使用Kinesis作为初学者(易于使用、体积小、成本低)。许多组织转向基于EC2的Kafka(如果他们只需要流媒体)或Spark Streaming,以获得更好的控制,并降低大批量成本。这是AWS中为数不多的几次托管任务,像Kinesis这样的托管服务最终会比基于EC2的Kafka解决方案花费更多的费用。

(2)通用(或特定)的批处理集群

使用Hadoop/Spark这些系统,用户可以获得高度可扩展、低成本(商用硬件和开源软件)存储和计算,这些存储和计算可能会遇到大量问题,从而以尽可能低的成本对数据进行批量分析。

Hadoop技术非常成熟,提供了一个非常丰富的软件生态系统,可以利用这些通用计算和存储资源提供从数据仓库到流媒体,甚至NoSQL的所有内容。

在Hadoop之上,现在可以运行Spark,它带有自己的可扩展框架,以低延迟(高内存)方式提供上述所有功能,甚至适用于流媒体和NoSQL。

?成本:$ - $$$$(高度依赖于内存需求)

?适用性:最低成本、最大灵活性。如果希望采用一个集群完成所有任务,并从Hadoop或Spark内部部署转移,那么这是一个不错的选择,非常适合机器学习。

?注意事项:一个全能的系统很少把每件事都做好,但这可以通过使用Spark和为每个工作量身定制的集群来大大减轻工作负荷。

?热门产品:EMR(托管服务,也将运行Spark),Cloudera(基于EC2),Hortonworks(通过EMR作为托管服务,基于EC2)。

?提示和技巧:在S3存储桶中长期存储源数据,构建集群,并根据需要将数据加载到集群中,然后在分析任务完成后立即关闭所有数据。这实际上正是默认情况下EMR的工作原理,但即使使用的是Cloudera或Hortonworks(现在功能几乎相同),也可以轻松编写上述所有内容。利用EC2现场实例可以节省80%-90%的成本,并检查自己的分析,以便可以向上或向下旋转集群。以利用成本最低的spot窗口。

(3)NoSQL引擎

Velocity(并发事务)在这里特别重要,这些引擎被设计为处理任意数量的并发读写。虽然其他系统通常不能用于最终用户(需要低延迟响应)和员工分析团队(可能会使用长时间运行的查询锁定多个表),同时,NoSQL引擎可以扩展以适应一个系统的两个主服务器。一些开发允许以低延迟方式实时加入和查询该数据。

?成本:$$ - $$$(通常为内存密集型)

?适用性:“3V”问题。简单和/或快速变化的数据模型。需要构建KPI的实时仪表板。

?警告:必须放弃交易和丰富多样的SQL。由于它不使用SQL,因此无法使用Tableau和Microstrategy等可视化工具直接查询数据。扩展(尤其是添加新节点和重新平衡)可能很困难,并且会影响用户延迟和系统可用性。

?受欢迎的产品:DynamoDB(托管服务),Neptune(托管服务,目前仍处于测试阶段),Cassandra(基于EC2),CouchDB(基于EC2)和HBase(通过EMR作为托管服务,基于EC2)。

?提示和技巧:努力采用AWS管理的服务DynamoDB,而不是配置EC2并加载第三方系统。定期修剪最终用户DynamoDB表,并在这些历史表上创建每周或每月的表。使用Dynamic DynamoDB“自动调整”配置的容量,使其始终满足消耗。使用DynamoDB Streams可以对客户服务取消等关键事件进行实时响应,或者在第二个区域提供备份。

(4)企业数据仓库(EDW)

企业数据仓库(EDW)与此处提到的其他系统截然不同。它提供了人们称之为“OLAP”(在线分析处理,可以支持来自内部用户的一些长时间运行的查询)与“OLTP”(在线事务处理,可以支持来自最终用户的大量读取和写入)功能,如Oracle的RDBMS或MySQL。当然,可以使用OLTP系统作为企业数据仓库(EDW),但是大多数人都将OLTP数据库集中在最近用户的低延迟,最近事件(如“跟踪上周的订单”)需求和定期(通常是每天)窗口更旧数据输出到OLAP系统,业务用户可以在数月或数年的数据中运行长时间的查询。

这些OLAP系统使用诸如列式存储、数据非规范化(创建具有几乎无限维度的“数据立方体”)等策略,并提供RDBMS级ANSI 92 SQL依从性,这意味着可以完全访问SQL功能,并且可以定制Tableau等可视化工具直接与他们合作。

?成本:$$ - $$$$$(通常需要大量节点来存储和处理大量数据)。

?适用性:如果希望专门针对业务价值分析数据或构建KPI的实时仪表板。

?警告:确保团队了解OLAP和OLTP之间的区别,并确保他们以正确的方式使用每个OLAP和OLTP。

?提示和技巧:与EMR/Hadoop一样,只在需要时启动集群,将源数据保存在S3存储桶中(这实际上是Redshift默认工作的方式)。标记集群,以便用能够以自动方式快速识别和关闭未使用的容量。考虑保留以控制成本。真正了解可用的不同节点类型(高存储、高吞吐量)以便利用每个节点类型。采用本机加密,因为它可以将性能降低多达20%-25%。通过O‘Reilly课程深入了解Redshift,或考虑通过出色的“数据仓库”课程进行面对面培训,该课程几乎完全涵盖Redshift。

(5)就地分析

几年前,Presto通过提供高性能的数据分析改变了游戏规则,而无需将数据从原生的、低成本的长期存储中移出。其最终结果是,可以简单地运行查询,而不是必须为昂贵的EMR或Redshift集群支付全部费用。而是只按使用的内容收费。

此外,人们需要很多时间来尝试选择(然后管理)EMR或Redshift集群的正确节点和节点数。采用Presto,人们不再知道也不关心这种差别,而这一切都在用户需要的时候起到作用。

最后,Presto支持RDBMS级别的ANSI-92 SQL兼容性,这意味着所有可视化工具都可以直接使用它,具有的SQL背景可以在ad-hoc查询中全面使用。

?费用:$ - $$

?适用性:成本极低。没有任何管理。可以作为低成本、中等性能的企业数据仓库(EDW)。它不需要将数据复制到第二个系统。大型连接和复杂分析效果很好。

?警告:需要最低延迟。为了获得不错的性能,可能会使用序列化格式Parquet、压缩、重新分区等重新格式化存储的数据。可能需要多轮查询调整和/或重新格式化才能获得正确的结果。目前不支持UDF或事务。

?热门产品:AWS Athena(用于查询S3数据的托管服务),EMR(托管服务-可以自动安装Presto),自我管理的Presto(基于EC2–用户永远不想在AWS中执行此操作)。

?提示和技巧:只需使用Athena。利用AWS Glue构建ETL管道,以获取原始数据,并将其重新格式化为S3或Athena可以更有效地使用的内容。使用S3生命周期策略将原有的数据移动到低成本的归档存储(如Glacier)。

|| 把它们放在一起

通过了解将在公共云中运行的五个顶级大数据架构,用户现在可以获得有关最佳应用位置的可操作信息,以及潜伏的位置。

一旦用户开始在AWS公共云中构建大数据架构,将很快了解到更多的架构,并且在很多情况下,企业可能会最终同时使用上述所有内容,可能使用Kinesis将客户数据流媒体传输到DynamoDB和S3。用户可能偶尔会在该源数据上启动EMR(进行某些机器学习)或Redshift(分析KPI)集群,或者可以选择以可以通过AWS Athena就地访问的方式格式化数据,让它像企业数据仓库(EDW)一样发挥作用。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系。

原文地址:http://blog.51cto.com/14068431/2323215

时间: 2024-10-10 08:51:05

五个顶级的大数据架构----大数据程序员必修课的相关文章

大数据告诉你:程序员如何涨薪水

美国队长:这怎么知道? 国防军官:这怎么不知道,21世纪就是本数码书.佐拉教会九头蛇怎么去读它,你的银行记录.病例.投票模式.电子邮件.通话信息.还有大学成绩单...左拉的算法会评估人们的过去,然后预测他们的未来. --<美国队长2> 听起来很玄乎,但事实是我们真的正在进入"大数据时代",支付宝最新上线的"芝麻信用分"就是一个例子. 芝麻分的背后是芝麻信用对海量信息数据的综合处理和评估,主要包含了用户信用历史.行为偏好.履约能力.身份特质.人脉关系五个维

阿里架构师:?程序员必须掌握的几项技术能力

一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心驱动力.我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦): 只关注项目本身,不懂就baidu一下. 除了做好项目,还会阅读和项目有关的技术书籍,看wikipedia. 除了阅读和项目相关的书外,还会阅读IT行业的书,比如学Java时,还会去了解函数语言,如LISP. 找一些开源项

架构师害怕程序员知道的十项技能的读后感

6年前就看过这篇文章,当时朦朦胧胧的,现在再次看了一遍,受益匪浅啊. 一 每个好架构师都是一位出色的程序员(卓越的程序员) 确实,首先得会编码,知道编码是咋回事,才能设计出结构来进行逻辑开发,不然设计出来的东西自己不知道该从哪里入手,别人就更不知道了. 我从事编码也有8年了,对程序开发也算相当熟悉了,所以我在架构的时候也会考虑是否容易扩展,各个接口是否都好用,这样在开发具体功能时就能很方便的套用结构了. 二 女性架构师优先?驾驭概念的技能是最高潜力(抽象思维) 架构师在拿到需求后,首要的任务就是

为了升级到架构师,程序员无需过度关注哪些技能?哪些技能不可缺?

如果走技术路线,架构师是个关键的结点.如果在大厂,一般有有6年时间足以升级到高级开发.因为在大厂里,能提供架构师所需的分布式组件开发调试以及上线的经验,上进点的程序员只要跟着大流,多通过排查问题观察底层,多通过压测或部署组件多实践缓存.高并发高可能之类的技术,想不升级到架构师都难. 但不少程序员止步于高级开发,在我之前的博文为什么很多程序员没有升级到架构师?里讲述了这一现象并分析了原因.如果是因为主观不上进导致自身发展受限,那么别人也帮不了你,不过我在面试候选人的时候,发现一些态度积极的程序员把

如何修复在移动动表现差异很大的选择框---中级程序员研究

在移动端开发中,我们往往需要按照设计稿去高度还原效果图,并且实现交互方式,下面看一下一个标签的表现形式: select 在iOS中的表现: 但是在安卓上并不是这样的效果 交互表现得差异性需要优化,那么问题来了,怎么优化.如何去保持同一标签可以表现相同得样式和交互方式.其实这也是前端的重要工作之一:兼容性和适配,也对应着招聘的要求之一:高度还原设计稿:言归正传,看到select不同的表现.我们如何实现这个替换呢?用过element-ui,iview等框架的小伙伴都知道,他们为了保持统一的表现,放弃

提高Java架构师和程序员效率的10个工具

Java受到全球百万计开发者的追捧,已经演变为一门出色的编程语言.最终,这门语言随着技术的变化,不断的被改善以迎合变化的市场需求. 无论你是否拥有一家科技公司,软件已经成为几乎每一个企业不可或缺的一部分,为了吸引你潜在的顾客,你应该交付给客户一个技术上有创新的产品.那么,Java能提供这样的平台帮你实现这一技术创新.Java贡献者们一直保持着大幅度的更新,以提供最新最强大的功能. 最近发布的 Java8完美的诠释了高效和创新的特性,也为那些想要在创新之路上取得成功的企业铺平了道路.然后,合适的完

架构师给程序员的一封信

六个月前,当我们开始新项目时,我和我的团队里的每个人都收到了来自我们的架构师的一封邮件: 每次当我开始做一个新项目时我都非常的兴奋.即使是在做了20年的软件开发后,我仍然感觉心里像揣了一个小兔子似的怦怦直跳.这将是我们共同的旅程.我深信我们正在绘制一份充满乐趣.富有挑战.内容丰富的路线图.我想让这趟旅程能够成为你们将来值得回忆的一件事,希望你们都能完全的体验到这次经历. 这有点理想化,但我会尽量使公司的议事日程.技术策略和你们的进展协调一致.这样一来,如果你们做的很好,大家都会受益.我对你们技术

什么样的基础设施适合快速和大数据架构?

为大数据和较新的快速数据架构提供基础设施并不是一个饼干切割的问题.两者对硬件和软件基础设施都有着显著的调整或改变. 较新的快速的数据架构与大数据架构有着显著区别,并且快速数据提供了真正的联机事务处理工具.理解大数据和快速数据需求的变化能够帮助你做出正确的硬件和 软件选择. 大数据架构 相比企业在以往通常收集数据的方法,大数据是通过更大的数据容量,分析和获得更大的洞见的过程,大部分的数据(例如,社会媒体有关客户的数据)是可访问的 公共云.这一数据,反过来,强调快速访问,不再强调一致性,也造就了如H

企业架构,业务架构,数据架构

我们将核心价值链上的端到端总结为两个核心,其一是供应链的端到端流程和业务:其二是产品研发的端到端和业务.各个企业由于类型不同往往对两条价值链各有 侧重.生产代工类企业没有自己的产品研发,那么只有供应链:高科技研发企业可以做到卖产品核心技术和专利,不做具体供应链方面事情.而更多的生产制造型企 业往往是1和2两者的一个有机结合. 再谈企业架构和业务架构: 企业架构本身强调的是业务驱动IT,业务和IT的匹配和融合而不是两张皮,在这里可以看到核心我们关注的点包括流程,活动,数据,组织,资源五个方面的内容