大数据框架原来可以这么学,领教了~(内含福利)

2024-06-09 21:58

本文主要是介绍大数据框架原来可以这么学,领教了~(内含福利),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导语

如果你会做饭,那么就自带的50%的学习buffer————开玩笑的,其实大数据流程处理跟做饭一个道理,搞懂弄了流程,再来看看我们怎样学习它,这样学习大数据就事半功倍啦。

如果你已经对大数据的各个框架有所了解,想要福利资料,可以直接跳到3.2 或 3.3 章节获取领取福利。

目录

  1. 美食与大数据

  2. 大数据处理流程

    1.1 数据收集

    1.2 数据存储

    1.3 数据分析

    1.4 数据应用

    1.5 其他框架

  3. 学习路线

    3.1 框架学习

    3.2 资料领取

    3.3 福利

1 美食与大数据

想象一下,大数据的处理流程好比你做一道美食,需要经历以下几个步骤:

1、食材采购————菜市场去批量采购不同类型的食材:猪肉、蔬菜、干货等

2、食材收藏————采购后将这些菜按照类型放到不同区域:冰箱冷藏区、冰箱冷冻区、干货区

3、食材预处理————不同食材需要进行处理:蔬菜清洗、猪肉切丝切片、调料剁碎

4、食材加工————爆炒猪肝、清蒸鲈鱼、红烧五花肉…

美食是对食材的处理,那么大数据这些框架就是对数据的处理:

采购食材——数据收集、

分批收藏——数据存储、

食材预处理——数据预处理、

加工食材——数据应用。

2 大数据处理流程

在这里插入图片描述

2.1、数据收集(食材采购)

就像菜市场上有不同的食材,我们会到不同的区域进行采购:

在这里插入图片描述

那么数据的收集也一样,一般采集服务器上的日志,你可以用最笨的办法就是将服务器上的全部的日志全部导出,但一般大型项目中都是分布式部署的,并且不能因为你导出行为而干扰了服务器的正常运行,所以基于这样的需求,

诞生了一些日志收集工具:「Flume 、Logstash、Kibana」,通过简单配置对复杂数据进行收集处理。

2.2、数据存储(食材收藏)

就像我们会存储不同的食材一样,会将根据食材属性、大小把它放在冰箱冷藏、冷冻区 或者 干货区:

在这里插入图片描述

数据存储同样的道理,我们知道数据分为结构化数据、半结构化数据、非结构化数据:

2.2.1、结构化数据它长这样:

在这里插入图片描述

解释:结构化数据就关系型数据库表示和存储的,像我们存储到mysql、Oracle表里面的数据就是结构化数据,

2.2.2、半结构化数据它长这样:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201022233654178.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE0OTM0NjI=,size_16,color_FFFFFF,t_70#pic_center)

解释:半结构化数据就是结构化数据的一种形式,像我们平时用到的XML、JSON属于常见半结构化数据,

2.2.3、非结构化数据就是各种文档、图片、视频/音频,不过它以二进制存储的,它长这样:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201022233707862.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE0OTM0NjI=,size_16,color_FFFFFF,t_70#pic_center)

解释:非结构化数据就是各种文档、图片、视频/音频。

结构化数据通常通过关系型数据库存储,例:「MySQL、Oracle」,他们的优点在于快速存储,并且达到快速访问的目的。

为了处理半结构化(日志数据)、非结构化(音频、图片、视频数据)数据而诞生了:「GFS、HDFS」文件处理系统,它的优点在于处理:能处理海量的结构化、半结构、非结构化的数据,在由于它不能随机对数据进行访问,照成访问速度慢的问题,为了「继承关系型数据库随机访问快优点 + 以及保留海量处理非结构化数据,最终诞生了Hbase 、MongoDB」

2.3、数据处理(食材预处理)

食材收藏后,我们分批对食材进行预处理:土豆切块、肉切片/切丝、姜蒜切片:

在这里插入图片描述

大数据也会对数据进行预处理,预先对数据进行etl(清洗、转换、加载),针对应用场景不同,分为「批处理与流处理」

2.3.1、批处理:对离线数据进行处理,例:我们输出用户1年前的购买商品数据的报表,此时「对数据的时效性要求不高」所以对应的就是批处理,处理框架有 「Hadoop MapReduce、Spark、Flink」

2.3.2、流处理:对实时数据进行处理,例:查询当前时刻商品库存数据,此时「对数据的时效性非常高」所以对应的就是流处理,即在接收数据的同时就对其进行处理,处理框架有 「Storm、Spark Streaming、Flink Streaming」 等。

在这里插入图片描述

如果懂一些编程的同学可以通过以上的框架对数据进行预处理,

那么假如不懂编程的同学就必须学习以上的框架吗?————答案是否定的,为了能让熟悉sql的人员同样能分析数据,查询框架应运而生———— 「Hive 、Spark SQL 、Flink SQL、 Pig、Phoenix」 等框架。

在这里插入图片描述

这些查询框架支持使用标准的sql语法 或 类sql语法对数据进行查询,经过sql解析后转换成对应的作业, Hive 本质上就是将 SQL 转换为 MapReduce 作业, Spark SQL 将 SQL 转换为一系列的 RDDs 和转换关系(transformations)

2.4、数据应用(食材加工)

经过处理的食材,我们开加工,红烧、清蒸、油炸,然后放上我们的喜好的盐味,最终出锅,上菜:

在这里插入图片描述

对于大数据的最后加工,我们可以将预处理的数据最终变成我们想要的产品,将数据用于优化你的推荐算法,

例:短视频个性化推荐、电商商品推荐、头条新闻推荐

这里面就会用到一些算法来实现,电商领域常用的2种算法如下:

2.4.1、「内容的推荐算法」

原理:用户喜欢和自己关注过的Item在内容上类似的Item

举例:比如你看了哈利波特1,基于内容的推荐算法发现哈利波特2,与你以前观看的在内容上面(共有很多关键词)有很大关联性,就把后者推荐给你。

在这里插入图片描述

2.4.2、「协同过滤推荐算法」

原理:用户喜欢那些具有相似兴趣的用户喜欢过的商品,

举例:你的朋友喜欢电影哈利波特2,那么就会推荐给你,这是最简单的基于用户的协同过滤算法

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201022234136682.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE0OTM0NjI=,size_16,color_FFFFFF,t_70#pic_center)
2.5. 其他框架

前面的是对大数据处理流程所用到的技术框架,实际上大数据集群化(安装 & 监控)、数据迁移、高并发场景的消峰会用到以下框架:

2.5.1 大数据平台集群化:

1 安装

为了更方便的进行集群的部署、监控和管理,衍生了 「Ambari、Cloudera Manager」 等集群管理工具

2 资源分配

保证集群高可用,需要用到 「ZooKeeper」 ,ZooKeeper 是最常用的分布式协调服务,它能够解决大多数集群问题,包括首领选举、失败恢复、元数据存储及其一致性保证。同时针对集群资源管理的需求,又衍生了 「Hadoop YARN」 ;

3 任务调度

多个复杂的并且彼此之间存在依赖关系的作业:基于这种需求,产生了 「Azkaban 和 Oozie」 等工作流调度框架

2.5.2 数据迁移:

有时需要将数据从关系型数据库迁入到 HDFS 中,或者从 HDFS 迁出到关系型数据库中,需要使用到 「Sqoop」 框架

2.5.3 并发性问题:

当并发非常高的情况下,数据无法直接写入到HDFS中时,需要用到 「Kafka」 框架,将数据以队列的方式存储,然后慢慢消费它。

3 学习线路

当我们摸清了每个框架解决什么问题,它位于大数据处理的那个部分,这时候我们再来去学习这个框架,就会事半功倍。

3.1. 框架分类

日志收集框架:Flume、Logstash、Filebeat

分布式文件存储系统:Hadoop HDFS

数据库系统:Mongodb、HBase

分布式计算框架:

批处理框架:Hadoop MapReduce

流处理框架:Storm

混合处理框架:Spark、Flink

查询分析框架:Hive 、Spark SQL 、Flink SQL、 Pig、Phoenix

集群资源管理器:Hadoop YARN

分布式协调服务:Zookeeper

数据迁移工具:Sqoop

任务调度框架:Azkaban、Oozie

集群部署和监控:Ambari、Cloudera Manager

他们的层级结构如下:

在这里插入图片描述

最底层通过 flume + sqoop 结构化 与 非结构化数据进行收集,然后存储到hdfs上,在通过zookeeper(yarn)进行集群化资源管理,决定不同的任务分配资源的大小,上层应用可以通过 hadoop、Storm、spark、Flink等框架对数据进行计算与访问,也可以通过类sql语言:hive、pig、spark sql等语言对数据进行计算与访问,不同任务之间在通过Oozie进行调度。

3.2 学习资源

大数据最权威和最全面的学习资料就是官方文档:

《hadoop 权威指南 (第四版).pdf》
《Kafka 权威指南.pdf》
《Zookeeper 分布式一致性原理与实践.pdf》
《Spark 内核架构设计与实现原理.pdf》 
《HBase 权威指南.pdf》 
《Hive 编程指南.pdf》 
《Flume 构建高可用、可扩展的海量日志采集系统.pdf》
《数据挖掘导论_完整版.pdf》

对应关键词:

- Hadoop
- Kafka
- Zookeeper
- Spark
- HBase
- Hive
- Flume
- 挖掘

「微信 后台回复关键字获取:Hadoop、Kafka、Zookeeper、Spark、HBase、Hive、Flume、挖掘 进行获取」

3.3 福利

如果你由于工作太忙想快速入门,那么下面是我之前对部分技术的讲解链接,希望可以帮助你快速理解或掌握它:

hive函数:

一篇搞定hive函数,建议收藏

pandas函数:

一篇搞定Pandas函数,建议收藏!

hadoop-MapReduce原理:

再也不用怕面试官问你 MapRedue了

hadoop-HDFS原理:

HDFS!一家分布式图书馆...

絮叨

在刚开始学习大数据的第一年里,总觉得大数据框架面前我还是一个小学生,通常是因为工作需才去学习它,对大数据没有系统的一些认识,后面工作中自己会如果接触到大数据中一个知识点,自己会有意识的先弄清楚它能「解决什么问题」「为什么它能解决」这些问题,以及跟它「相关的大数据知识点」是哪些,这样学习才能事半功倍。欢迎朋友们关注我~

在这里插入图片描述

这篇关于大数据框架原来可以这么学,领教了~(内含福利)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt