大宝大话大数据(一) ——大数据的整体框架

2024-04-30 18:08

本文主要是介绍大宝大话大数据(一) ——大数据的整体框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习和使用大数据工具已经一年多了,经历了看书自学,实习实践,理解原理这几个重要阶段的铺垫后,自我感觉算是对大数据开发初步入门了。也想借此机会对所学内容做一个总结和归纳。方便自己查阅的同时,也希望帮助到需要的同学。全部内容会更新在我的github上,手搜https://github.com/tygxy。

本系列的写作安排主要围绕自己的知识体系展开,主要涉及三个方面的内容:大数据整体概述和学习方法、大数据常见组件的使用、组件原理串讲。这三个方面分别对应不同读者的三类需求,即
    - Part 1 大数据究竟是什么,怎么学?
    - Part 2 大数据组件在开发中怎么用?
    - Part 3 这些组件的原理是什么?

以上三个方面分别对应大数据小白,入门,找工作三个不同深度的需求,如果只是想了解概念,只读Part 1即可;如果是在开发中需要具体使用,建议阅读到Part 2;如果需要参与实习秋招,就必须对常见组件的原理有一定的理解,可以参阅Part 3。

恕本人愚钝,自己的技术水平还很初级,使用和理解的程度还远远不够,甚至有错。只期望抛砖引玉,非常欢迎大佬批评指正,相互探讨,共同提高。

闲话少叙,本期这一节主要是介绍大数据的骨架,希望通过这一节,读者可以对大数据有一个框架般的认识。

大数据,我的理解是用分布式手段去解决海量数据在收集、存储、流转、计算、消费中的问题。如图所示,借用通信原理中最常见的信源-信道-信宿的结构概念。我尝试画出了数据从产生到消费的过程。几乎所有组件都是尝试解决上述问题中的一部分,并最终整合起来,构成大数据的整体解决方案。

如图所示,这是我现阶段理解的大数据框架,主要基于Hadoop2.0+。

整体看分为五个层次,从下到上分别是采集层、存储层、调度层、计算层、交互层。

先说存储层,海量数据在单机内已经无法存储,解决方案是依靠分布式。将数据存储在N台机器构成的集群之上,并依赖一定的HA(High Available)机制保证数据的可靠性和可拓展性。开源的方案就是Hadoop中的HDFS组件,作为分布式文件系统,HDFS是海量文件的存储池,也是整个大数据生态体系的基石之一。

在存储层之上,就是调度层。Hadoop2.0提供的解决方案是Yarn。我们可以假想一个场景,在大数据平台之上,肯定会有很多作业任务需要运行,那么如何将集群的资源分配,如何调度这些Task任务完成,这就依赖Yarn做统一安排。Yarn作为通用资源调度器,可以管理MapReduce、Spark、Storm等诸多作业。

再往上就是大数据的另外一个核心,计算层。针对批处理、流计算两类不同的业务场景,分别衍生出MapReduce、Spark、Storm、Spark Steaming、Flink等计算框架。不同的公司有不同的技术选型,这些计算框架,在各自的领域发挥着强大效能。作为大数据开发工程师,需要熟悉几个框架的编程。

最上面是交互层,它们是为了方便开发,提供的一些便捷组件。比如Hive可以做数据仓库、Spark SQL可以操作一些结构化数据、Impala可以做实时交互式查询等。本质来说,上述工具可以理解成“接口”,最终都会转换成计算层的执行引擎去具体执行。交互层的工具方便了我们的开发,也是我们工作中必不可少的利器。

翻回头我们在谈一下采集层,采集层是用来收集和转发数据。Flume是日志收集工具,Kafka是经典的消费队列,Sqoop是ETL工具等。这些工具同样是为了解决大数据处理中的一些具体场景诞生的应用,对整个生态圈起到了支撑的拓展的作用。

在图的最左侧是Zookeeper,为整个集群的部分组件,比如HBase,Kafka提供协调服务。它是集群的管理者,监视着集群中各个节点的状态并根据节点的反馈做合理的操作。

综上,我们看到采集层解决的是大数据的收集和流通,存储层解决的是大数据的存储,计算层和交互层解决的是大数据的计算和消费问题。

通过刚才的阐述,我希望小白同学理解几个方面的问题:
    - 大数据解决了什么问题
    - 这一套流程的总体框架是什么,分为哪几个层级,每个层级具体干什么
    - 几个常用的组件分别所属哪些层级

看完这篇文章,如果对上面三个问题有了答案,就再好不过了。

刚才的三个问题也是对我这篇文章的一个简单梳理,大数据涉及的内容比较多,乍一看挺复杂的,但是本质上讲不难。下一篇文章,我会结合自己有限的学习经历,讲讲应该如何学习大数据。

谢谢大家!

这篇关于大宝大话大数据(一) ——大数据的整体框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949562

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

pandas数据过滤

Pandas 数据过滤方法 Pandas 提供了多种方法来过滤数据,可以根据不同的条件进行筛选。以下是一些常见的 Pandas 数据过滤方法,结合实例进行讲解,希望能帮你快速理解。 1. 基于条件筛选行 可以使用布尔索引来根据条件过滤行。 import pandas as pd# 创建示例数据data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dav