五种大数据架构简介.pdf
五种⼤数据架构简介 ⼤数据是收集、整理、处理⼤容量数据集,并从中获得见解所需的⾮传统战略和技术的总称。虽然处理数据所需的计算能⼒或存储容量早已 超过⼀台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近⼏年才经历了⼤规模扩展。 本⽂将介绍⼤数据系统⼀个最基本的组件:处理框架。处理框架负责对系统中的数据进⾏计算,例如处理从⾮易失存储中读取的数据,或处 理刚刚摄⼊到系统中的数据。数据的计算则是指从⼤量单⼀数据点中提取信息和见解的过程。 下⽂将介绍这些框架: · 仅批处理框架: Apache Hadoop · 仅流处理框架: Apache Storm Apache Samza · 混合框架: Apache Spark Apache Flink ⼤数据处理框架是什么? ⼤数据处理框架是什么? 处理框架和处理引擎负责对数据系统中的数据进⾏计算。虽然"引擎"和"框架"之间的区别没有什么权威的定义,但⼤部分时候可以将前 者定义为实际负责处理数据操作的组件,后者则可定义为承担类似作⽤的⼀系列组件。 例如Apache Hadoop可以看作⼀种以MapReduce作为默认处理引擎的处理框架。引擎和框架通常可以相互替换或同时使⽤。例如另⼀个 框架Apache Spark可以纳⼊Hadoop并取代MapReduce。组件之间的这种互操作性是⼤数据系统灵活性如此之⾼的原因之⼀。 虽然负责处理⽣命周期内这⼀阶段数据的系统通常都很复杂,但从⼴义层⾯来看它们的⽬标是⾮常⼀致的:通过对数据执⾏操作提⾼理解能 ⼒,揭⽰出数据蕴含的模式,并针对复杂互动获得见解。 为了简化这些组件的讨论,我们会通过不同处理框架的设计意图,按照所处理的数据状态对其进⾏分类。⼀些系统可以⽤批处理⽅式处理数 据,⼀些系统可以⽤流⽅式处理连续不断流⼊系统的数据。此外还有⼀些系统可以同时处理这两类数据。 在深⼊介绍不同实现的指标和结论之前,⾸先需要对不同处理类型的概念进⾏⼀个简单的介绍。 批处理系统 批处理系统 批处理在⼤数据世界有着悠久的历史。批处理主要操作⼤容量静态数据集,并在计算过程完成后返回结果。 批处理模式中使⽤的数据集通常符合下列特征… · 有界:批处理数据集代表数据的有限集合 · 持久:数据通常始终存储在某种类型的持久存储位置中 · ⼤量:批处理操作通常是处理极为海量数据集的唯⼀⽅法 批处理⾮常适合需要访问全套记录才能完成的计算⼯作。例如在计算总数和平均数时,必须将数据集作为⼀个整体加以处理,⽽不能将其视 作多条记录的集合。这些操作要求在计算进⾏过程中数据维持⾃⼰的状态。 需要处理⼤量数据的任务通常最适合⽤批处理操作进⾏处理。⽆论直接从持久存储设备处理数据集,或⾸先将数据集载⼊内存,批处理系统 在设计过程中就充分考虑了数据的量,可提供充⾜的处理资源。由于批处理在应对⼤量持久数据⽅⾯的表现极为出⾊,因此经常被⽤于对历 史数据进⾏分析。 ⼤量数据的处理需要付出⼤量时间,因此批处理不适合对处理时间要求较⾼的场合。 Apache Hadoop Apache Hadoop是⼀种专⽤于批处理的处理框架。Hadoop是⾸个在开源社区获得极⼤关注的⼤数据框架。基于⾕歌有关海量数据处理所 发表的多篇论⽂与经验的Hadoop重新实现了相关算法和组件堆栈,让⼤规模批处理技术变得更易⽤。 新版Hadoop包含多个组件,即多个层,通过配合使⽤可处理批数据: · HDFS:HDFS是⼀种分布式⽂件系统层,可对集群节点间的存储和复制进⾏协调。HDFS确保了⽆法避免的节点故障发⽣后数据依然可 ⽤,可将其⽤作数据来源,可⽤于存储中间态的处理结果,并可存储计算的最终结果。 · YARN:YARN是Yet Another Resource Negotiator(另⼀个资源管理器)的缩写,可充当Hadoop堆栈的集群协调组件。该组件负 责协调并管理底层资源和调度作业的运⾏。通过充当集群资源的接⼝,YARN使得⽤户能在Hadoop集群中使⽤⽐以往的迭代⽅式运⾏更多 类型的⼯作负载。 · MapReduce:MapReduce是Hadoop的原⽣批处理引擎。 批处理模式 批处理模式 Hadoop的处理功能来⾃MapReduce引擎。MapReduce的处理技术符合使⽤键值对的map、shuffle、reduce算法要求。基本处理过程 包括: · 从HDFS⽂件系统读取数据集 · 将数据集拆分成⼩块并分配给所有可⽤节点 · 针对每个节点上的数据⼦集进⾏计算(计算的中间态结果会重新写⼊HDFS) · 重新分配中间态结果并按照键进⾏分组 · 通过对每个节点计算的结果进⾏汇总和组合对每个键的值进⾏"Reducing" · 将计算⽽来的最终结果重新写⼊ HDFS 优势和局限 由于这种⽅法严重依赖持久存储,每个任务需要多次执 大数据架构在近年来已经成为信息技术领域的重要组成部分,其核心目标是处理和分析海量的数据,从而挖掘出有价值的洞察。本文将深入探讨五种主要的大数据处理框架,包括批处理框架Apache Hadoop,仅流处理框架Apache Storm和Apache Samza,以及混合框架Apache Spark和Apache Flink。 批处理框架是大数据处理的基石,它主要处理静态、大规模的数据集,适用于需要对完整数据集进行计算的任务,如计算总数和平均值。Apache Hadoop是最具代表性的批处理框架,由HDFS(分布式文件系统)、YARN(资源管理器)和MapReduce(处理引擎)组成。HDFS提供了数据的分布式存储和容错机制,YARN负责集群资源管理和作业调度,而MapReduce则采用map、shuffle和reduce的计算模型,执行批量数据处理。然而,批处理的缺点在于处理速度较慢,因为它需要多次读写数据。 流处理框架如Apache Storm和Apache Samza则专注于实时、连续的数据流处理。这些框架能够实时地处理和分析数据,适合用于需要快速响应和低延迟的场景,如实时监控和预警系统。Apache Storm保证了数据处理的精确一次,而Apache Samza则利用Kafka进行消息传递,提供高吞吐量和低延迟的流处理能力。 混合框架如Apache Spark和Apache Flink则结合了批处理和流处理的优点,能够在同一平台上处理批数据和实时数据。Apache Spark以其强大的内存计算能力著称,减少了磁盘I/O,提高了处理速度,而Spark Streaming则支持微批处理,提供近实时的流处理。Apache Flink则是一个流优先的框架,具备流处理和批处理的一致性,提供事件时间和处理时间的概念,适用于复杂的实时数据分析。 这些框架的选择取决于具体的应用场景和需求。批处理框架如Hadoop适合离线分析和大数据的历史分析;流处理框架如Storm和Samza适用于实时分析和事件驱动的业务逻辑;混合框架Spark和Flink则提供了更灵活的处理方式,能够适应各种场景,尤其是那些既要处理历史数据又要实时响应的应用。 在大数据处理中,理解这些框架的特性和应用场景至关重要。选择正确的框架可以极大地提高数据处理的效率和洞察的准确性,帮助企业或组织更好地利用大数据的力量,驱动决策并创造商业价值。随着技术的不断发展,这些框架也在持续优化和演进,以满足日益增长的数据处理需求。
- 粉丝: 193
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页