系统架构设计师 大数据架构篇二

server/2024/9/22 14:18:02/

大数据架构 🌐

大数据处理系统分析 🔍

大数据处理系统三大挑战 🚀

  • 非结构化数据处理:如何处理非结构化和半结构化数据。
  • 复杂性与不确定性大数据复杂性、不确定性特征描述的刻画方法和大数据的系统建模。
  • 异构性影响:数据异构性与决策异构性的关系对大数据知识发现与管理决策的影响。

大数据处理架构>系统架构八大特征 🏗️

  • 鲁棒性和容错性 🛡️:系统能够在组件失败时继续运行。
  • 低延迟读取和更新能力 ⏱️:快速响应数据读取和更新请求。
  • 横向扩容 🌟:系统能够通过增加节点来扩展处理能力。
  • 通用性 🌍:适用于多种类型的数据处理任务。
  • 延展性 📈:系统设计允许功能和性能的扩展。
  • 即席查询能力 🔎:支持用户即时发起的查询请求。
  • 最少维护能力 🔧:系统设计注重减少维护工作量。
  • 可调试性 🐛:系统提供有效的错误定位和调试手段。

Kappa 架构 🎓

Kappa 架构介绍 📖

Kappa 架构在Lambda的基础上进行了优化,删除了 Batch Layer,将数据通道以消息队列进行替代。因此对于Kappa 架构来说,依旧以流处理为主,数据在数据湖层面进行了存储,当需要进行离线分析或者再次计算的时候,则将数据湖的数据再次经过消息队列重播一次则可。

Kappa 架构的优缺点 📌

优点 🎯
  • 代码统一 💻:将实时和离线代码统一起来,方便维护并统一了数据口径的问题。
缺点 🚫
  1. 性能瓶颈 🚧:消息中间件缓存的数据量和回溯数据有性能瓶颈。
  2. 数据丢失风险 📉:在实时数据处理时,遇到大量不同的实时流进行关联时,非常依赖实时计算系统的能力,很可能因为数据流先后顺序问题,导致数据丢失。
  3. 稳定性问题 🛑:Kappa 在抛弃了离线数据处理模块的时候,同时抛弃了离线计算更加稳定可靠的特点。
伪代码示例 (Kappa 架构实时数据处理)🌊
function processStream(stream):for message in stream:processed_data = transform(message)store_to_data_lake(processed_data)function store_to_data_lake(data):data_lake.save(data)function replay_data_for_analysis():raw_data = data_lake.fetch_data()for message in raw_data:processed_data = transform(message)store_to_data_lake(processed_data)

Kappa+ 变形架构 🌟

Kappa+ 架构核心思想 🛠️

Kappa+架构的核心思想是让流计算框架直接读取HDFS中的数据仓库数据,实现实时计算和历史数据回溯计算,无需保存日志或复制数据到消息队列。将任务分为无状态任务(并行扫描全量数据)和时间窗口任务(基于时间分区对数据进行计算)。

时间窗口任务原理 🕒

  • 数据分区存储 📂:将数据按时间分区存储。
  • 分区分时计算 ⏳:按时间先后顺序计算每个分区的数据,分区内数据乱序并行,全部分区计算完成后进入下一个分区。
伪代码示例 (Kappa+ 架构数据处理)🌟
function process_data_lake():data = hdfs.read_data()processed_data = transform(data)store_to_service_layer(processed_data)function transform(data):// 转换逻辑return transformed_datafunction store_to_service_layer(data):// 存储到服务层逻辑service_layer.save(data)

数据分析架构 📊

在基于使用Kafka+Flink构建Kappa流计算数据架构,针对Kappa架构分析能力不足的问题,再利用 Kafka对接组合Elastic-Search实时分析引擎,部分弥补其数据分析能力。

Lambda 架构和Kappa 架构对比 🆚

对比内容

  • 复杂度与开发维护成本 💼:
    • Lambda 架构 🛠️:需要维护两套系统,复杂度高、开发、维护成本高。
    • Kappa 架构 📝:只需要维护一套系统,复杂度低,开发维护成本低。
  • 计算开销 💡:
    • Lambda 架构 🔥:需要一直运行批处理和实时计算,计算开销大。
    • Kappa 架构 🌐:必要时进行全量计算,计算开销小。
  • 实时性 ⏱️:两者都满足实时性。
  • 历史数据处理能力 📚:
    • Lambda 架构 🏛️:批式全量处理,吞吐量大,历史数据处理能力强。
    • Kappa 架构 🚀:流式全量处理,吞吐量相对较低,历史数据处理能力较弱。

总结 🧐

大数据架构的核心在于处理大规模数据集,提供高效率的数据处理和分析能力。Lambda架构和Kappa架构提供了不同的方法来实现这一目标,每种架构都有其优缺点。Lambda架构通过分离实时和批量数据处理,确保了系统的高容错性和灵活性,但增加了系统的复杂性。Kappa架构通过统一数据处理流程,简化了架构>系统架构,但可能面临性能瓶颈和数据一致性的挑战。Kappa+架构尝试通过直接在数据仓库上进行流计算来解决这些问题,提供了一种更加高效的数据处理方式。

记忆口诀 🎓

  • Lambda架构:“两层楼(批处理和实时处理)保稳定,但维护成本高。”
  • Kappa架构:“一条流水线(统一流处理),简单高效,但可能丢数据。”
  • Kappa+架构:“数据湖上直接计算,无需重复存储,性能更优。”

趣味记忆互联网案例故事 🌐

Lambda架构的故事

想象一个繁忙的机场,批处理层就像机场的行李处理系统,虽然处理速度较慢,但能够确保每件行李安全到达。实时处理层则像是机场的安检,快速响应,确保旅客能够及时登机。服务层则是机场的信息显示屏,实时更新航班信息,让旅客随时获取最新动态。

Kappa架构的故事

想象一条河流,Kappa架构就像一条流线型的船,它在河流中快速穿梭,无论是顺流而下还是逆流而上,都能够保持高速运行。但是,如果河流中的波浪太大(数据流的波动),船可能会颠簸,甚至丢失一些货物(数据丢失)。

Kappa+架构的故事

想象一个智能的水库管理系统,Kappa+架构就像水库上的一个智能闸门,它能够根据下游的需求直接调节水流,无需将水先引入另一个渠道再进行分配。这样既节省了水资源,又提高了供水效率。

参与点评
读者朋友们,如果您在阅读过程中,对文章的质量、易理解性有任何建议,欢迎在评论区指出,我会认真改进。


http://www.ppmy.cn/server/120305.html

相关文章

机械设备产品资料方案介绍小程序系统开发制作

设备产品资料介绍小程序系统,是一家工业机械设备生产厂家为了更好的服务客户而定制开发的一套小程序系统,让用户通过小程序就可以了解公司产品介绍的详细参数、售后服务和产品操作手持等。 该小程序系统里面主要开发的功能模块有: 1、产品目…

【百日算法计划】:每日一题,见证成长(020)

题目 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一…

Java流程控制语句——跳转语句详解:break 与 continue 有什么区别?

🌐在Java编程中,break和continue是两个重要的控制流语句,它们允许开发者根据特定条件改变程序的执行流程。虽然两者都用于中断当前的行为,但它们的作用方式不同。本文将通过生动的例子来详细解释这两个语句,并使用流程…

代码随想录算法训练营|344.反转字符串、541. 反转字符串II、54.替换数字

344.反转字符串 题目 参考文章 思路:本题的运用双指针的方式,掉换两个头尾两个元素,然后指针收缩再继续掉换,这里无论字符串大小是否为奇偶,都是可以判断出来的 代码: class Solution {public void rev…

【NTN 卫星通信】关于卫星通信的一次访谈

1 概述 通过CSDN的途径,有个咨询公司找到我,说是有投资公司看到我的博客,希望做一次访谈,我回答了10个问题,现在发到博客上;很多观点都是自己根据经验拍的,并没有严格的计算,有兴趣的…

C++STL六大组件

C标准模板库(STL)是一个功能强大的库,提供了六大组件,这些组件相互协作,为开发者提供了高效且可重用的数据结构和算法。以下是这六大组件的详细介绍: 容器是用于存储数据的数据结构,它们提供了…

如何有效检测住宅IP真伪?

在当今的互联网时代,住宅IP(即家庭用户通过宽带服务提供商获得的IP地址)在跨境电商、广告投放、网络安全等多个领域扮演着重要角色。然而,随着网络环境的复杂化和欺诈行为的增多,如何有效检测和辨别住宅IP的真伪成为了…

Kubernetes实战——集群监控和可视化管理

目录 一、Kube-Prometheus 1、版本兼容性介绍 2、安装 kube-prometheus 3、安装Ingress,实现访问 二、K8s安装ELK日志收集 1、安装Elasticsearch 2、安装Logstash 3、安装Filebeat 4、安装Kibina 三、Dashboard安装与使用 1、安装 2、创建token 3、使用 …