脚本宝典收集整理的这篇文章主要介绍了大数据测试 之 基础篇介绍(一),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
- HDFS简介
- hadoop生态 - 相关组件介绍
- hadoop常用命令,及linux相关辅助测试验证的命令使用
- 数据测试&整体业务流程分析
- 数据映射和数据简化思维(Map/reduce)
- 测试脚本开发&运行
前言介绍
* 在介绍大数据之前,先要了解他解决了什么问题,能给我们带来什么价值
* 一方面,以前IT行业发展没有那么快,系统的应用也不完善,数据库足够支撑业务系统。
* 但是随着行业的发展,系统运行的时间越来越长,搜集到的数据也越来越多,传统的数据库已经不能支撑全量数据的存储工作
* 另一方面,数据越来越多,单机的计算已经成为瓶颈。因此,基于分布式的*数据系统崭露头角
* 在存储上,hdfs的分布式存储可以任意水平扩展,可以解决海量数据存储的难题。
* 在计算上,从最初的MaPReduce,把任务水平拆分,多台机器并行计算,再汇总结果,到基于Spark的内存计算,改造Mapreduce每次数据落盘以及编程方式的痛点
* 有了存储和计算框架,周边就衍生出了很多管理、缓存相关的技术
HDFS设计思想
什么是分布式系统?
* 分布式系统会划分成多个子系统或模块,各自运行在不同的机器上,子系统或模块之间通过网络通信进行协作,实现最终的整体功能。
* 比如分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等
* 利用多个节点共同协作完成一项或多项具体业务功能的系统就是分布式系统
海量数据存储
Hadoop生态系统
* 目前企业中一般都是用hadoop2.x的版本了,所以就没有必要再去学hadoop1.x版本了,hadoop2.x主要包含三大块hdfs。
* 主要学习hdfs的一些命令即可,上传,下载,删除,移动,查看等命令…mapreduce 这个需要重点学习下,要理解和掌握mr的原理以及代码实现
相关组件简介
* Yarn: 解决多租户资源调度的难题
* Flume: 解决数据传输的难题
* Sqoop: 解决分布式存储数据与传统DB数据之间的转换
* Oozie: 解决了*数据计算任务的调度
* Kafka: 提供了发布订阅机制的消息队列
* ZookeePEr: 可以帮助用户完成主备的选举(master->slave)
* Hive: 在hdfs的基础上提供了数仓的功能
* Hbase: 则基于hdfs实现列式数据库…
* Redis:基于内存的,实现快速读写的一个noSQL(非关系型数据库) 数据库
-
YARN:
- yarn是一个资源调度平台,主要负责给任务分配资源即可,yarn不仅可以给mapreduce任务调度资源
- 还可以为spark任务调度资源,是一个公共的资源调度平台,所有满足条件的框架都可以使用yarn来进行资源调度
-
Flume:
- Flume是一个日志采集工具:比较常用的,最常见的就是采集应用产生的日志文件中的数据
- 一般分两个流程:
- Flume采集数据存储到kafka中,为后面使用storm或者sparkstreaming进行实时处理
- Flume采集的数据落盘到hdfs上,为了后期 使用hadoop或者spark进行离线处理
-
sqoop:
- sqoop支持基于sql或者表名把数据库中的数据存储到分布式环境中
- 数据库支持oracleMySQL等等,分布式环境可以是hdfs,hive,hbase等等
- 数据的导入时双向的,比如你可以把oracle中的数据读取存储到hdfs,也可以把hdfs的数据导入到oracle
-
Oozie:
- Oozie 提供了大数据场景下各种任务的调度
- 比如shell脚本、spark任务、mapreduce任务、sqoop任务、hive查询以及普通的java程序
- 一个基于工作流引擎的服务器,可以在上面运行Hadoop的Map Reduce和Pig(数据流处理)任务
-
kafka:
*。。。。。。。。。。。。
-
Zookeeper:
- zookeeper是很多大数据框架的基础,中文名称是动物园的意思,因为目前的大数据框架的图标很多都是动物的形状,所以zookeeper其实就是可以管理很多大数据框架的。
- 针对这个框架,主要掌握如何搭建单节点和集群,以及掌握如何在zkcli客户端下对zookeeper的节点进行增删改查操作即可
-
Hive:
- hive基于hdfs构建了数据仓库系统
- 它以hdfs作为存储,依赖于数据库(嵌入式的数据库derby或者独立的数据mysql或oracle)存储表schema信息,并完成基于sql自动解析创建mapreduce任务
- (由于mapreduce计算效率比较差,目前官方推荐的是底层计算模型采用tez或者spark)。
- 所以hive可以理解为:hdfs原始存储+DB Schema信息存储+SQL解析引擎+底层计算框架组成的数据仓库
- 其实hive在执行hql,底层在执行的时候还是执行的mapredce程序
- 简单理解:就是将hdfs中结构化的数据映射成一张数据库表,并提供基本的hive sql增删改查等功能
-
Hbase:
- HBase是基于Hdfs之上的面向列的分布式数据库(NoSQL),基于文件分割以及rowkey的顺序存储,能快速索引查询数据。
- 是一个nosql 数据库,是一个key-value类型的数据库
- hbase基于rowkey查询效率很快,可以达到秒级查询,但是基于列簇中的列进行查询, 特别是组合查询的时候,如果数据量很大的话,查询性能会很差
- HBase以表的形式存储数据。表有行和列组成。列划分为若干个列族/列簇(column family),每个列族/列簇下面可以有多个普通列
- Hbase表组成:行键,时间戳,列族,行等组成
- Hbase表逻辑视图
-
Hbase Shell
-
Redis:
- redis也是一个nosql(非关系型数据库) 数据库和key-value类型的数据库
- 这个数据库是纯基于内存的,也就是redis数据库中的数据都是存储在内存中的,所以它的一个特点就是适用于快速读写的应用场景,读写可以达到10W次/秒
- 但是不适合存储海量数据,毕竟机器的内存是有限的,当然,redis也支持集群,也可以存储大量数据
- 数据类型:
- string,list,set,sortedset,hashmap
- pipeline管道
- 在批量入库数据的时候是非常有用的,以及transaction事务功能
-
Storm:
- storm是一个实时计算框架,和hadoop的区别就是,hadoop是对离线的海量数据进行处理
- 而storm是对实时新增的每一条数据进行处理,是一条一条的处理,可以保证数据处理的时效性可整合kafka实时消费数据
-
Spark:
- 分类:spark core,spark steaming,spark MLib,spark graphx
- spark生态圈里面包含的有:以下主要掌握
- 离线处理:spark core
- 实时处理:spark streaming
- storm和spark streaming (两个都是实时处理框架)
- 但是主要区别是:storm是真正的一条一条的处理,而spark streaming 是一批一批的处理
-
Sqoop:
- sqoop支持基于sql或者表名把数据库中的数据存储到分布式环境中
- 数据库支持oraclemysql等等,分布式环境可以是hdfs,hive,hbase等等
- 数据的导入时双向的,比如你可以把oracle中的数据读取存储到hdfs,也可以把hdfs的数据导入到oracle
-
ElasticseArch:
- lasticsearch是一个适合海量数据实时查询的全文搜索引擎,支持分布式集群,其实底层是基于lucene的
- 在查询的时候支持快速模 糊查询,求count,distinct,sum,avg等操作,但是不支持join操作
- ELK:
- 是一个典型的日志收集,存储,快速查询出图表的一整套解决方案
- 主要掌握:
- 使用es进行增 删改查,es中的index,type,document的概念,以及es中的mapping的设计
Hadoop 核心组件介绍
- HDFS: Hadoop Distributed File System
- YARN: Yet Another Resource Negotiator
- MR: MapReduce (解决海量数据计算)
- 一个运行在YARN上的离线计算框架MapReduce
HDFS常用命令(结合Linux文本三剑客使用)
MapReduce概述: (可了解python内置的map(),reduce(),filter()函数)
- MapReduce是一种分布式计算模型,由GOOGLE提出,主要用于搜索领域,解决海量数据的计算问题.
- MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。
- 这两个函数的形参是key、value对,表示函数的输入信息。
MapReduce模型:
- Hadoop MapReduce编程模型主要由两个抽象类构成,即Mapper和Reducer
- Mapper用于处理切分过的原始数据
- Reducer对Mapper的结果进行汇总,得出result
在做大数据测试的过程中我们需要首先熟知一下几点:
- 数据的整体是如何流转的?
- 数据测试的流程是怎么样的?
- 数据测试的用例要如何设计?
- 数据如何输入输出?
- 数据如何同步并分析转换成可视化图表?
数据测试整体流程图
以上既是大数据测试基础篇知识简介,想要深入了解的小伙伴可留言关注哦,后续会持续更新大数据测试MapReduce框架和Spark框架,以及实践
脚本宝典总结
以上是脚本宝典为你收集整理的大数据测试 之 基础篇介绍(一)全部内容,希望文章能够帮你解决大数据测试 之 基础篇介绍(一)所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。