大数据架构平台通常由多个组件构成,每个组件负责处理不同的任务和功能。
以下是大数据架构平台的常见组件架构以及各组件的功能。
1. 数据集成- 数据采集:负责从各种数据源(例如传感器、日志文件、数据库)中收集数据,并将其转换为可处理的格式。
- 数据提取、转换和加载(ETL):执行数据清洗、转换和加载操作,以将数据从源系统提取到目标数据存储中。
开源日志收集系统有 Sqoop、Flume、Logstash、Filebeat、Vector 等,其中 Flume 在云原生场景用得多。
大数据分析不能直接在原始的业务数据库上直接操作,所以需要抽取想要的数据到分析数据库或者分布式存储系统(例如 HDFS),常见数据抽取工具包括:DataX、FlinkCDC、Canal、Maxwell、BitSail 等 。
2. 数据存储与计算数据存储
- 分布式文件系统:提供可扩展的、高容错性的存储系统,如Hadoop分布式文件系统(HDFS)。
- 分布式数据库:用于存储和管理大规模数据集的数据库,如Apache HBase、Cassandra等。
- 数据仓库:用于集中存储和管理结构化数据的系统,支持复杂查询和分析,如Apache Hive、Apache Doris等。
- 内存数据库:将数据存储在内存中以加快查询和分析速度,如Apache Ignite、MemSQL等。
- 数据湖:用于存储原始、半结构化和非结构化数据的大规模存储库,如Apache Iceberg、Apache Hudi等。
计算引擎 - 流式计算和离线批计算是大数据处理中两种常见的计算模式,它们在数据处理方式、应用场景和实时性要求上有所区别。
流式计算是指实时处理连续的数据流,即按照数据的到达顺序逐条处理数据。数据以流的形式进入系统,系统对每条数据进行即时处理和分析,并输出结果。
流式计算的常见框架和工具包括:Apache Flink、Apache Storm、Apache Spark Streaming等,大部分公司都在用 Flink。
离线批计算是指对大规模数据集进行批量处理和分析。数据按批次进行处理,即将数据集划分为固定大小的批次,批次内部并行处理,而不要求实时性。
离线批计算的常见框架和工具包括:Apache Hadoop MapReduce、Apache Spark、Apache Hive、Apache Pig等。
3. 分布式调度- 分布式资源管理器:管理和分配集群中的计算资源,如Apache YARN、Apache Mesos等。
- 作业调度器:调度和协调各种作业和任务的执行,如Apache DolphinScheduler、Apache Oozie、Apache Airflow等。
OLAP(Online Analytical Processing)是一种用于查询和分析大规模数据集的技术。它提供了灵活的、交互式的数据查询和分析功能,用于支持复杂的多维分析和决策支持系统。
常见的OLAP查询分析工具和平台包括:Impala、Presto、ClickHouse、Doris等。
实时查询是指对实时数据进行即时查询和获取结果的操作。与批处理查询相比,实时查询要求查询结果能够在较短的时间内返回,并且能够满足对数据的实时性需求。
常见的实时查询工具和平台包括:HBase、Kylin、Druid、TiDB、Doris等。
以上是大数据架构平台的常见组件,每个组件都有其特定的功能和用途。这些组件协同工作,以构建一个可靠、可扩展且高性能的大数据处理平台,用于数据集成、存储、计算、调度和查询分析。具体的架构设计和组件选择会根据应用场景和需求的不同而有所差异。