读数据架构知识体系指南21技术(下)

读数据架构知识体系指南21技术(下)

1. Hadoop

1.1. Hadoop是一个开源框架,由Apache基金会于2005年创建

1.2. 旨在利用分布式计算的力量

1.3. 各种工具和库扩展了Hadoop的功能,使其成为处理大量数据并寻求具有成本效益的可扩展性组织的流行选择

1.4. Hadoop分布式文件系统(HDFS)能够通过将数据分割成较小的块并分布到多个节点和计算机集群上,来高效地存储和处理大数据工作负载

1.5. MapReduce框架

  • 1.5.1. 是一种编程模型,用于在集群中并行处理和分析大数据集,同样通过将工作负载分解成较小的任务,并将其分布到集群中的多个节点

  • 1.5.2. 将大型、复杂的计算分解为多个任务,并将这些任务分配给各个工作节点,由它们协调并整合结果

  • 1.5.3. MapReduce框架自动处理并行化、容错和数据分发

  • 1.5.4. MapReduce程序由两个过程组成:Map()用于过滤和排序、Reduce()用于总结数据

  • 1.5.5. MapReduce库已经用许多编程语言(通常是Java)编写,并且有不同的优化级别

1.6. 好处

  • 1.6.1. 可扩展性

  • 1.6.1.1. 提供了一个可扩展的架构,可以处理大量数据

  • 1.6.1.2. 通过添加更多的标准硬件到集群中,可以轻松扩展存储和处理能力,这使得Hadoop成为一种成本效益高且灵活的解决方案

  • 1.6.2. 分布式计算

  • 1.6.2.1. 将数据和处理任务分配到一个机器集群中,从而实现并行处理

  • 1.6.2.2. 将工作负载分散到多个节点上可以更快地处理大数据集

  • 1.6.3. 容错性

  • 1.6.3.1. 将数据复制到集群中的多个节点,以确保数据即使在硬件故障时也能持久存在并保持可用

  • 1.6.4. 成本效益的存储

  • 1.6.4.1. 允许用户在常规、负担得起的硬件上存储大量数据,而不是使用昂贵的专用存储系统,这降低了存储成本

  • 1.6.5. 数据本地性

  • 1.6.5.1. 通过将计算移至数据存储位置附近,而不是通过网络传输数据,从而优化了数据处理,这减少了网络开销并提高了整体效率

  • 1.6.6. 灵活性和兼容性

  • 1.6.6.1. 与各种数据格式兼容,能够处理结构化、半结构化和非结构化数据

  • 1.6.7. 工具生态系统

  • 1.6.7.1. 拥有丰富的工具和框架生态系统,这些工具扩展了Hadoop的功能,提供了更高级的抽象、数据处理语言和分析功能

  • 1.6.7.2. YARN,用于资源管理和作业调度

  • 1.6.7.3. Hive用于数据仓库

  • 1.6.7.4. Pig用于数据分析

  • 1.6.7.5. HBase一种NoSQL数据库

  • 1.6.7.6. Spark用于内存处理

  • 1.6.7.7. Presto用于分布式SQL

  • 1.6.8. 社区支持

  • 1.6.8.1. 拥有一个庞大且活跃的开源社区,提供开发、改进和支持,同时为用户提供大量的资源、文档和专业知识

1.7. 潜在缺陷

  • 1.7.1. 复杂性

  • 1.7.1.1. 学习曲线较陡,设置和管理起来也较为复杂

  • 1.7.1.2. 需要分布式系统的专门知识和专业技能,这对没有相关经验或专职资源的组织来说可能是一个挑战

  • 1.7.2. 延迟

  • 1.7.2.1. MapReduce(Hadoop核心的处理框架)基于批处理,这会引入延迟,因此可能不适用于实时或交互式数据处理场景

  • 1.7.3. 硬件要求

  • 1.7.3.1. Hadoop的分布式架构需要一个机器集群才能高效运行

  • 1.7.3.2. 搭建和维护这样的集群,包括硬件和网络基础设施,可能涉及巨大的成本和复杂性

  • 1.7.4. 数据管理开销

  • 1.7.4.1. Hadoop的HDFS提供了容错和复制功能,但在节点间复制数据会消耗存储空间,这增加了额外的存储开销

  • 1.7.5. 复杂的生态系统

  • 1.7.5.1. 生态系统非常丰富,但它也很复杂,因此管理和集成其中的组件可能会比较有挑战性

  • 1.7.6. 数据安全和治理

  • 1.7.6.1. Hadoop的分布式特性和数据复制可能会带来数据安全、隐私和治理方面的独特挑战

  • 1.7.6.2. 与传统的数据存储系统不同,Hadoop的分布式特性要求组织超越标准的安全实践,采用专门的安全措施和访问控制来应对其复杂性

1.8. 如今,云基础设施可以替代Hadoop集群,云对象存储可以替代HDFS

2. Databricks

2.1. 是一个基于云的平台,用于运行Apache Spark工作负载,Spark是一个开源数据分析处理引擎

2.2. Spark最初于2009年由UC Berkeley的AMPLab开发,旨在解决MapReduce的局限性

2.3. 设计目标是更快速、更易用,并且能够处理批处理和实时数据流

2.4. 自成立以来,Databricks一直是Apache Spark的重要贡献者,通过项目Tungsten进行了一系列优化,旨在利用现代CPU架构提升处理效率

2.5. Databricks推出了多种库,以扩展Spark的能力

2.6. Databricks还专注于让Spark更易于使用,推出了Python、Java和Scala的高级API,使得编写Spark应用程序更加容易

2.7. 为了应对数据湖的局限性,并提升可靠性和数据质量,Databricks还推出了Delta Lake​,这是一个开源存储层,运行在现有数据湖之上

  • 2.7.1. Delta Lake解决了传统数据湖在数据质量、可靠性和性能方面的挑战

  • 2.7.2. Databricks于2019年将Delta Lake开源,并将该项目贡献给Linux基金会,以便更广泛的社区能够参与贡献

  • 2.7.3. 如今,Delta Lake已广泛采用

2.8. 在2020年,Databricks推出了创新的数据架构—数据湖仓

  • 2.8.1. 这一创新标志着数据管理范式的重大转变

2.9. 在Databricks看来,现代数据架构应当是开放的、协作的,并能够处理所有类型的数据和高级分析用例

  • 2.9.1. 该公司支持能够随着时间推移、随企业增长而扩展的架构

2.10. Databricks的协作环境也能使数据网格中的跨职能团队更加高效地合作,从而与启用面向领域的去中心化团队的原则相一致

3. Snowflake

3.1. 是一个完全托管的、基于云的数据仓库解决方案,用于存储、组织和分析大量数据,并且独特之处在于,它不仅提供传统的数据仓库功能,还能作为一个数据湖使用

3.2. 该公司成立于2012年,旨在解决传统数据仓库解决方案的局限性,公司创始人开发了一个独特的架构,将计算与存储分离,从而允许基于需求独立且自动地扩展高效的数据分析和工作负载

3.3. 云原生方法和架构吸引了各行各业的广泛客户,提供按需付费的定价模式、强大的安全性、灵活性和可靠性

3.4. 将Snowflake作为数据湖使用,提供了统一数据平台的优势,消除了对单独数据湖基础设施的需求,从而简化了复杂性

3.5. Snowflake的优势在于其高度优化的数据仓库功能和高效的查询与分析能力

  • 3.5.1. 如果需要进行特定的计算或专业处理,可能需要将数据从Snowflake导出,并使用其他计算引擎进行处理

3.6. Snowflake与数据网格原则高度契合

  • 3.6.1. 公司认识到赋予领域专家和团队拥有自己数据的权利的重要性

3.7. 强大的数据管理能力,包括模式管理、元数据标签和目录化,能够将数据视为宝贵的资产,并且可以被组织内的其他团队访问和消费,从而推动数据产品思维

3.8. 还与数据网格概念中的可扩展性和弹性特点相契合:其云原生架构允许独立扩展计算资源,帮助团队适应不断变化的需求,并高效地处理数据分析

3.9. 使组织能够采用数据网格方法,促进数据生态系统中的协作、自主性和敏捷性

posted @ 2026-10-11 07:20  躺柒  阅读(10)  评论(0)    收藏  举报