大数据分析可以定义为用于处理复杂数据集以发现市场趋势,关联性和隐藏数据模式的技术和流程的集合。它使组织能够做出明智的业务决策,并帮助研究人员验证其科学模型。
大数据分析已成为所有业务的重要组成部分,无论是财务分析,零售,广告还是医疗保健。全球数据量呈指数级增长,估计将从今年的33ZB跃升至2025年的175ZB。这不仅创造了巨大的机会,而且对运行大数据分析的基础架构提出了巨大的要求,并给数据工程师带来了新的挑战。
Analytics(分析)工作量有什么独特之处?
首先,让我们就定义分析工作负载的观点达成一致。根据Curt Monash的说法,“分析是事务性的反义词。” 尽管事务处理(OLTP)的特点是具有少量的离散操作,每秒具有大量事务,并且具有严格的数据完整性,但分析工作负载通常以较少的用户为特色,这些用户对数据源进行的操作更加复杂且占用大量资源。
幕后发生了巨大的并行性,并且通过使计算尽可能地接近数据来最大程度地降低了数据移动。数据量大,模型复杂且计算由分布式系统完成–所有这些都给执行这些任务的基础架构带来了真正的负担。
考虑过渡到云?
建立和维护您的大数据分析堆栈并不是开玩笑,因此公司经常选择将其分析工作负载迁移到云中,以降低复杂性并提高运营效率。根据经验,在准备过渡到云时,有两个要点要考虑:数据存储和数据处理。
要存储的数据山
对于大数据项目,首先需要考虑的是分布式数据存储。参照Brewer定理,分布式数据存储不可能同时提供两个以上的保证:即一致性,可用性还是分区容限。因此,选择两个,这很好。与以往一样,选择取决于您的应用程序。
为了保持大数据轮旋转,需要高度可伸缩,高效且经济高效的存储。几乎总会是某种类型的NoSQL数据库-如今,您可以 选择超过225个NoSQL数据库。
还记得布鲁尔定理吗?这是您开始做出牺牲的时候。如果您可以容忍某些数据不可用的风险(牺牲可用性),那么您可以采用一种高度灵活且易于扩展且具有简单查询功能的文档数据库,例如MongoDB。如果您的客户可能读取不一致的数据(牺牲一致性),这没什么大不了的,那么您可能想要选择容错且线性可扩展的数据库,例如Cassandra。
当您考虑使用传统的关系数据库管理系统(例如MySQL或PostgreSQL)并牺牲分区容忍度时,甚至还有一些利基用例。尽管这可以验证您的行家身份,但可能涉及数据库分片,并使处理非结构化数据几乎变得不可能。让我们仅使用SQL来查询数据仓库,对吧?
无论选择哪种数据库,大多数数据库在商用硬件上都能很好地运行。尽管如今所有超大规模云提供商都在提供托管数据库服务-其中有些人不愿意让开源成为中指 -但是,当有出色的开源产品出现时,就不必陷入其生态系统中。
例如,您可以在具有HDD,SSD或NVMe直接连接的存储的裸机云上运行MongoDB集群,从而使每个节点上的I / O操作激增。而且,如果您是真正的速度爱好者,则可能需要设置像Ignite或Redis这样的内存数据库。
让我们处理数据!等等,但是如何?
数据是新的石油,并非没有原因。我们喜欢数据;它有助于我们更好地理解事物并揭示可行的见解。为此,我们必须以一种或另一种方式处理数据。
首先是Hadoop,其基于MapReduce计算范例的批处理计算框架。生活是美好的,并且在工程师水平扩展其大数据集群并采用大规模并行性的同时演唱了歌曲。每个节点在已为其分配的映射数据上执行给定的reduce函数-这样,大量数据块的处理就变得轻而易举。
这也是Google启动其搜索引擎的方式。随着时间的推移,随着大数据行业的日趋成熟, Hadoop生态系统迅速扩展并引入了更多抽象层来解决新问题。它仍然是当今数据行业中最重要和最常用的工具,您可以在其中轻松地在简单的商用服务器上运行。只需确保您的节点上具有快速,直接连接的存储,因为Hadoop MapReduce是磁盘绑定的。
虽然批处理是一个非常强大的概念,但我们首先需要存储数据以进行处理。当您要开始使用连续数据流进行实时预测时,这会带来困难。要使算法股票交易或野火监控等工作正常进行,必须一目了然地处理数据。显然,这里我们需要一个不同的范例,而Apache Spark在流处理方面处于创新的最前沿。
该项目最初旨在解决Hadoop在流分析中的弱点。Spark没有文件管理系统,因此它依赖于HDFS或任何其他存储集群。它从集群读取数据,一步完成其操作,然后将数据写回到集群。这可以比Hadoop快100倍,因为默认情况下Spark在内存中运行。在为您的Spark集群选择正确的基础架构时,请寻找功能强大的RAM。
像大多数伟大的技术一样,Spark发生了很大的变化。现在,它是一个统一的分析引擎,具有强大的交互式查询,图形处理和迭代算法。例如,您可以轻松构建机器学习工作流程,并在Spark上使用一些最受欢迎的算法来遍历数据集并构建机器学习模型。这些天,它甚至可以处理批处理作业。而关于Spark的最好的事情?它是完全免费的。
云还是不云
好的,您刚刚在口袋里就拥有了所有这些功能强大的开源工具。现在,您需要为项目选择正确的基础架构。如果您购买裸机服务器并将其托管在本地,则可以利用原始基础结构的大部分好处,但需要大量的前期资本投资和进一步的维护成本。
尽管对于大型企业来说,这种选择仍然相当可观,但是中小型企业必须更加敏捷。另一方面,租用基础结构是更方便的选择,因为您按使用量付费,而无需投资硬件。假设您最终决定迁移到云中。但是选择哪一个呢?
每个超大规模提供商,无论是AWS,Azure还是GCP,都具有广泛的托管服务组合,可为大数据社区提供服务,范围从托管数据库到集成的机器学习框架。这似乎是一种万能的解决方案,但是它们的大多数托管服务都具有与免费提供的开源同类服务大致相同的功能。如果您仍然希望完全从基础结构中抽象出来,并且可以将其锁定在一个提供商中,那您就可以准备接收不断增长的发票并使用复杂的定价计算器。有趣的是,甚至还有Cloud Economist的角色可以帮助您解决AWS发票。
好的,因此您想完全控制您的云堆栈,并始终可以自由选择其驻留位置。如前所述,诸如Hadoop和Spark之类的开源技术在商用硬件上确实能很好地工作,因此主要问题是选择哪种基础架构作为服务提供商。从历史上看,典型的云产品包括虚拟机,这些虚拟机具有超额预定的硬件资源,通常会导致工作负载变动和安全风险增加。尽管云服务生态系统已大大扩展,但基础架构基础服务仍然严重依赖虚拟机管理程序。
块上的裸金属云
裸金属云是不同的。您仍然拥有完全自动化的基础架构配置,而没有底层虚拟化层。这很棒,有几个原因。首先,所有服务器都是严格的单租户,并且您是整个计算机的唯一所有者。单身生活并不会带来很多乐趣,但在云中却是很棒的:您没有喧闹的邻居,没有硬件超额预定,没有虚拟机监控程序开销,并且安全风险更低。简而言之,裸机云是托管资源密集型应用程序的一种更干净的方法。对于需要强大基础架构和增强安全性的数据分析工作负载,裸机云无与伦比。
裸机的原始马力
在裸机上运行大数据集群可为您带来更多优势。可以通过RESTful API在数分钟内轻松扩展和缩小服务器,这在运行分布式系统时至关重要。没有虚拟化和硬件超量预订,您可以以最大容量运行应用程序,并且仍具有平稳稳定的工作负载。如果这还不够,您可以根据需要自定义服务器硬件。只需在构建机器学习模型时添加GPU加速器,增加RAM来扩展内存数据库或将NVMe存储放入服务器即可使Hadoop集群飞速发展。您还能在哪里获得如此简单的专用硬件?通过消除虚拟机管理程序的开销并引入自定义硬件,裸机云可为您提供按需提供的最高效的基础架构。原始而简单。
增强的隐私和安全性
在大数据世界中,对安全性非常重视,可以理解的是,您需要相应地选择基础架构。处理敏感数据通常意味着您必须存储和处理个人身份信息(PII),并遵守法律法规。确保您的供应商符合GDPR要求或获得行业认可的认证(例如ISO 27001)始终是一个好主意。除此之外,您在法律上也有义务拥有私有且隔离的基础结构。裸金属云本质上是单租户,您无需为此付出任何代价。
遵守法律很重要,但系统安全同样重要。在大数据上,分布式计算集群应在节点之间私下移动数据。为此,您通常需要一个专用网络子网。在裸机云上,会为每台服务器自动分配一个专用网络接口。这样,您可以在具有10G带宽的快速安全的LAN上内部处理数据。
数据传输便宜100倍
当然,您尝试使计算尽可能地靠近数据所在的位置。当您的数据集很大时,尤其如此,因为移动计算比移动数据便宜。但是,您仍然需要将数据移入和移出群集。超大规模提供商夸耀其低廉的数据传输价格,每TB的价格可能从50美元到100美元以上不等,但在裸机云上,您可以将数据传入和传出到Internet的价格低至每TB 1美元。完全不同,对吗?
现在由您决定
市场上仍然只有少数的裸机云提供商,而能够提供全自动且易于定制的基础架构的提供商更少。因此,如果您打算用下一件大事来征服世界,请考虑选择一个更灵活,高效且具有成本效益的云平台来升级大数据应用程序。