大数据测试 作为一个测试人员如何 0 基础学习大数据框架 (内含福利)

测试猿温大大 · 2020年10月18日 · 最后由 回复于 2021年06月29日 · 4759 次阅读

导语

如果你会做饭,那么就自带的 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、半结构化数据它长这样:

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

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

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

结构化数据通常通过关系型数据库存储,例: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,那么就会推荐给你,这是最简单的基于用户的协同过滤算法

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! 一家分布式图书馆...

絮叨

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

本文使用 mdnice 排版

共收到 4 条回复 时间 点赞

赞一个

目前看只有大数据测试还是蓝海,

里面图片是挂了吗

所以大数据测试到最后就变成了大数据开发工程师。。。

es 算吗?如果是的话属于那一类

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册