大数据架构详解:构建高效数据处理系统的关键要素

发表时间: 2024-06-20 09:43

大数据工具和技术需要特殊的大数据工具和技术。当涉及到管理大量数据并对大量数据执行复杂操作时,必须使用大数据工具和技术。当我们说使用大数据工具和技术时,我们所指的是大数据生态系统及其范围。不存在为每个用例提供的解决方案,它必须根据公司需求以有效的方式创建和制作。大数据解决方案必须根据企业的需求进行开发和维护,以满足企业的需求。一个稳定的大数据解决方案可以被构建和维护,这样它就可以用于所请求的问题。

我们将在本文中介绍大数据架构、大数据架构和应用、大数据架构中使用的技术、大数据可用的工具和方法以及大数据架构课程。


介绍

大数据架构是处理海量数据的综合解决方案。它详细描述了根据公司需求提供处理大数据的解决方案和基础设施的蓝图。它清楚地定义了通信的组件、层和方法。参考点是数据的摄取、处理、存储、管理、访问和分析。

处理数据摄取、处理和分析的数据库管理系统太复杂或太大,无法处理传统架构。传统架构可以一次性处理所有这些,而数据库管理系统可以分块处理。

一些组织对gb或tb设置了阈值,而另一些组织,甚至是数百万gb或tb,都不够好。例如,如果您查看存储系统和商品市场,存储的价值和成本由于这种情况而显着降低。有很多数据需要不同的存储方法。

大数据架构通过提供一种可扩展且高效的存储和处理数据的方法来解决其中的一些问题。其中一些是在特定时间发生的批处理相关数据,因此执行时必须以与批处理数据相同的方式进行调度。流类作业需要构建一个实时流管道来满足它们的所有需求。这个过程是通过大数据架构来完成的。


什么是大数据架构?

大数据系统中涉及的工作负载类型不止一种,大致分为以下几种:

1. 在基于大数据的数据源处于静止状态的情况下,仅仅对数据进行批处理是一种数据处理情况。

2. 基于动作的处理可以实现大数据的实时处理。

3. 探索新的交互式大数据技术和工具。

4. 机器学习和预测分析的使用。

数据源:所有提供给数据提取管道的数据源都受此定义的约束,因此这是大数据管道的起点所在。数据源,开放的和第三方的,在架构中扮演着重要的角色。关系数据库、数据仓库、基于云的数据仓库、SaaS应用程序、来自公司服务器和传感器(如物联网设备)的实时数据、第三方数据提供商,以及静态文件(如Windows日志),包括多个数据源。批处理和实时处理都是可能的。所管理的数据既可以是批处理的,也可以是实时处理的。

数据存储:数据存储在文件存储中,这些文件存储本质上是分布式的,可以容纳各种基于格式的大文件。还可以在数据湖中存储大量基于不同格式的大文件。这包括为批生成操作管理的数据,并保存在文件存储区中。我们提供HDFS、Microsoft Azure、AWS和GCP存储,以及其他blob容器。

批处理:使用长时间运行的作业将每个数据块分成不同的类别,这些作业过滤和聚合数据,并为分析准备数据。这些作业通常需要源,处理它们,并将处理后的文件交付给新文件。采用了多种批处理方法,包括Hive作业,U-SQL作业,Sqoop或Pig以及使用Java或Scala或其他语言(如Python)中的任何一种编写的自定义map reducer作业。

基于实时的消息摄取:满足以顺序和统一方式生成的数据的实时流系统是批处理系统。与批处理相比,这包括所有在接收数据时生成数据的实时流系统。该数据集市或存储区接收所有传入消息并将其丢弃到一个文件夹中进行数据处理,通常是唯一需要联系的数据集市或存储区。另一方面,如果需要基于消息的处理,就必须使用基于消息的摄取存储,如Apache Kafka、Apache Flume、Azure的事件中心等。传递过程以及其他消息队列语义通常更可靠。

流处理:实时消息摄取和流处理不同。后者将摄取的数据用作发布-订阅工具,而前者首先考虑所有摄取的数据,然后将其用作发布-订阅工具。另一方面,流处理以窗口或流的形式处理所有流数据,并将其写入接收器。这包括Apache Spark, Flink, Storm等。

基于分析的数据存储:为了分析和处理已经处理过的数据,分析工具使用基于HBase或任何其他NoSQL数据仓库技术的数据存储。数据可以在hive数据库的帮助下呈现,hive数据库可以提供元数据抽象,或者交互式使用hive数据库,hive数据库可以在数据存储中提供元数据抽象。也可以使用HBase或Spark SQL等NoSQL数据库。

报告和分析:另一方面,生成的构思必须经过处理,并且必须通过报告和分析工具有效地完成,这些工具利用嵌入式技术和解决方案来生成有用的图表、分析和洞察,从而对业务有益。例如,Cognos、Hyperion等

编排:利用大数据的基于数据的解决方案是与数据相关的任务,本质上是重复的,这些任务也包含在工作流链中,可以转换源数据,也可以跨数据源以及存储中的存储和加载移动数据。Sqoop、oozie、数据工厂等只是几个例子。


大数据架构的类型

1. λ架构

单个Lambda架构可以处理批处理数据和实时处理数据。它被用来解决任意函数的计算问题。在这个部署模型中,延迟减少了,在保持准确性的同时保留了可以忽略不计的错误。

lambda架构由以下几层组成:

批处理层:lambda架构的批处理层将传入的数据整体保存为批处理视图。批处理视图用于准备索引。数据是不可变的,并且只创建和保存原始数据的副本。批处理层通过使数据仅用于追加来确保一致性。它是lambda架构中的第一层,它将传入的数据整体保存为批处理视图。数据不能更改,只能创建和保存原始数据的副本。保存的数据是不可变的,这意味着它不能被更改,并且只保留和存储原始数据的副本。所保存的数据仅用于追加,这确保了数据在呈现之前已准备好。主数据集和预计算批处理视图都是这样处理的。

速度层:速度层直接向批处理层传送数据,批处理层负责计算增量数据。然而,速度层本身也可以通过减少计算次数来减少延迟。流层对来自速度层的已处理数据进行处理以产生纠错。

服务层:作为批处理层的结果,批处理视图和速度结果遍历到服务层。服务层对视图进行索引并并行化,以确保用户的查询快速且没有延迟。

2. Kappa架构

与Lambda体系结构相比,Kappa体系结构还旨在处理实时流和批处理数据。Kappa体系结构除了减少来自Lambda体系结构的额外成本外,还用消息队列取代了数据源媒介。

消息传递引擎在分析数据库中存储一系列数据,然后读取这些数据并将其转换为适当的格式,然后为最终用户保存这些数据。

通过读取消息数据并将其转换为最终用户易于访问的格式,该体系结构使访问实时信息变得容易。它还允许考虑以前保存的数据,从而提供额外的输出。

在Kappa体系结构中取消了批处理层,并增强了速度层以提供重编程功能。与Kappa体系结构的关键区别在于,所有数据都以序列或流的形式呈现。数据转换是通过蒸汽机实现的,蒸汽机是数据处理的中心引擎。


大数据工具和技术

根据其实用性,大数据工具可以分为以下四类。

1. 大规模并行处理(MPP)

松耦合或无共享存储系统是一种大规模并行处理结构,其目标是将大量计算机器划分为离散的部分并并行处理。MPP系统也被称为松耦合或无共享系统。处理是通过将大量计算机处理器分解成单独的位并并行处理来完成的。

每个处理器处理不同的任务,使用不同的操作系统,并且不共享内存。连接到高速网络的应用程序也可以使用多达200个或更多的处理器。在每种情况下,处理器处理一组不同的指令,并具有不同的操作系统,这些操作系统不是共享的。MPP也可以通过允许它向处理器发送命令的消息传递系统在进程之间发送消息。

基于MPP的数据库有IBM Netezza、Oracle Exadata、Teradata、SAP HANA、EMC Greenplum。

2. NoSQL数据库

结构用于帮助将数据与特定域关联起来。除非先将数据转换为结构化数据库,否则数据不能存储在结构化数据库中。SQL(或无SQL)是一种非结构化语言,用于封装非结构化数据并为同一域中的异构数据创建结构。NoSQL数据库提供了大量的配置可伸缩性,以及在处理大量数据方面的多功能性和可伸缩性。还有分布式数据存储,使数据在本地或远程可用。

NoSQL数据库包括以下几类:

1. 键值模型:字典、集合和关联数组通常可以使用哈希表来存储数据,但是这个数据库将信息存储在唯一的键值对中。key用于访问数据,value用于记录信息。它有助于在没有模式的情况下存储数据。键是唯一的,用于检索和更新数据,而值是字符串、char、JSON或BLOB。Redis、Dynamo和Riak是键值存储数据库。

2. 基于图的模型:图数据库既存储实体,也存储实体之间的关系,它们是多关系的。节点、链接和实体被存储为图上的元素,这些元素之间的关系由边(或节点)表示。图形数据库用于地图、交通、社交网络和空间数据应用。它们还可用于发现半结构化和非结构化数据中的模式。可以使用Neo4J、FlockDB和OrientDB图形数据库。

3. 基于列的NoSQL数据库:列数据库处理列。与关系数据库相比,它们有一组列而不是表。每一列都是重要的,并且是独立查看的。数据库中的值以连续的方式存储,可能没有值。由于列易于评估,列数据库在执行SUM、COUNT、AVG、MIN和MAX等汇总作业时效率很高。

列族也称为宽列或列存储。它们用于数据结构、商业智能、CRM和图书卡目录。

列式数据库Cassandra、HBase和Hypertable使用的是使用列式存储的NoSQL数据库。

4.面向文档的NoSQL数据库:面向文档的数据库存储文档,使它们本质上是面向文档的,而不是面向数据的。数据使用JSON或XML格式,数据使用键值对和JSON或XML格式。电子商务应用程序、博客平台、实时分析、内容管理系统(CMS)都是受益于这些数据库的应用程序。

NoSQL文档数据库包括MongoDB、CouchDB、Amazon SimpleDB、Riak和Lotus Notes。

3. 分布式数据库

分布式数据库是一组分布在计算机网络上的数据存储块。数据中心可能有自己的分布式数据库处理单元。分布式数据库可以物理地位于同一位置,也可以分散在相互连接的计算机网络上。分布式数据库是异构的(具有各种软件和硬件)、同构的(跨所有实例具有相同的软件和硬件)和不同的(由不同的硬件支持)。

目前领先的大数据处理和分发平台有Hadoop HDFS、Snowflake、quole、Apache Spark、Azure HDInsight、Azure data Lake、Amazon EMR、Google BigQuery、Google Cloud Dataflow、MS SQL。

分布式数据库通常配备以下工具:

处理大数据的目的是对其进行处理,而Hadoop是实现这一目的的最有效的解决方案之一。它被用来存储、处理和分析大量的数据。需要加载处理工具来处理大量数据。

MapReduce编程模型通过执行数据集的编译和组织操作,将海量数据有效地格式化和组织成精确的数据集。

Hadoop是Apache基金会的一个开源软件项目,它允许计算软件的计算。Spark是Apache基金会的另一个开源项目,旨在加快计算软件的进程。

4. 云计算工具

云计算工具是指利用互联网开发和服务的基于网络的计算服务。可配置计算资源的共享池在任何时间、任何地点都可用,由所有基于网络的服务共享。此服务可在需要时付费使用,并由服务供应商提供。该平台在处理大量数据方面非常有用。

亚马逊网络服务(AWS)是最流行的云计算工具,其次是微软Azure、谷歌云、Blob Storage和DataBricks。甲骨文、IBM和阿里巴巴也都是流行的云计算工具。


大数据架构应用

大数据架构的一个重要方面是使用和应用大数据应用程序,特别是大数据架构利用和应用大数据应用程序是:

1. 大数据架构的数据结构允许在一开始就删除敏感数据,因为它的数据摄取过程和数据湖存储。

2. 涉及批处理或实时的大数据架构同时以批处理和实时的方式摄取数据。批处理具有频率和循环调度。由于可以对数据文件进行分区,因此简化了批处理数据的摄取过程和作业调度。通过对表进行分区,可以提高查询性能。Hive、U-SQL或SQL查询用于对表数据进行分区。

3. 分布式批处理文件可以使用并行性进一步分割,并减少作业时间。另一个应用是将工作负载分散到各个处理单元。静态批处理文件以可以进一步分割的格式创建和保存。Hadoop分布式文件系统(HDFS)可以集群数百个节点,并可以并行处理文件,最终减少作业时间。


大数据架构的好处

高性能并行计算:大数据架构采用并行计算,多处理器服务器同时执行大量计算以加快处理速度。通过在多处理器服务器上并行处理,可以快速处理大型数据集。部分工作可以同时进行。

弹性可扩展性:大数据架构可以横向扩展,允许根据工作负载的大小调整环境。大数据解决方案通常在云中运行,您只需为实际使用的存储和处理资源付费。

选择的自由:大数据架构可以使用市场上的各种平台和解决方案,例如azure管理的服务、MongoDB Atlas和Apache技术。您可以为您的特定工作负载、现有系统和IT专业水平选择正确的解决方案组合,以获得最佳结果。

与其他系统互操作的能力:您可以使用大数据架构组件进行物联网处理和商业智能,以及分析工作流,以创建跨不同类型工作负载的集成平台。


大数据架构挑战

安全性:当涉及到静态大数据时,数据湖是常态。由于需要安全性来保护您的数据免受入侵和盗窃,因此需要健壮的安全性。此外,设置安全访问可能很困难。其他应用程序也必须使用数据才能正常工作。

复杂性:大数据架构的活动部分通常由许多相互关联的元素组成。这些组件可能有自己的数据注入管道和各种配置设置来提高性能,此外还有许多跨组件配置干预。大数据程序本质上要求很高,需要大量的知识和技能。

不断发展的技术:选择正确的解决方案和组件对于实现大数据业务目标至关重要。确定哪些大数据技术、实践和标准仍处于发展阶段可能是一项挑战,因为其中许多技术相对较新,仍在不断发展。核心Hadoop组件(如Hive和Pig)已经达到了稳定的阶段,但其他技术和服务仍在开发中,可能会随着时间的推移而发生变化。

特定领域的专业知识:随着基于主流语言构建的大数据API逐渐流行,我们可以看到使用非典型的、高度专业化的语言和框架的大数据架构和解决方案。然而,大数据架构和解决方案通常使用独特的、高度专业化的语言和框架,这对开发人员和数据分析师来说都是一个巨大的学习曲线。


结论

大数据架构可以处理对于传统数据库系统来说过于复杂或庞大的大量数据。大数据架构框架是大数据基础设施和解决方案的参考蓝图,因为大数据基础设施和解决方案用于处理、摄取和分析大量数据。大数据基础设施和解决方案为业务目的处理大量数据,引导数据分析,并提供大数据分析工具可以提取重要业务信息的环境,此外,大数据基础设施和解决方案还为大数据基础设施和解决方案提供蓝图。


本文转载自 大数据架构——详细说明- 雪兽软件

更多精彩推荐请访问 雪兽软件