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

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

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元