大数据应用测试经验总结

大数据应用测试过程与传统的web系统有较大的不同,大数据应用测试通常会分为web侧和ETL侧测试,web侧基本就是功能测试,而ETL(Extracting-Transfroming-Loading)测试主要指从任何外部系统提取、转换、载入数据到目标地。从底层数据采集、数据处理、到上层应用展现。

一、从技术架构设计上,分为以下几块:

  1. 数据采集:采集使用java和python程序从文件服务器下载文件,并把文件写入kafka、Hbase和Hive、Mysql中;
  2. 计算引擎:使用Hive on Tez计算引擎实现ETL跑批任务;使用spark streaming实现实时计算;使用Phoenix做前台交互式查询。
  3. 数据存储:使用Kafka、Hive、Hbase、MySQL满足各层次存储技术需求。
  4. 任务调度:使用Quartz实现作业调度及管理。
  5. 监控接口:使用Kafka、文件接口对接统一监控平台。
  6. 数据可视化:使用JQuery、Echarts、Easy UI等技术实现图表、表格展示;使用Apache POI实现excel、CSV的导入导出;使用Log4J记录日志;使用Spring框架实现页面、服务、数据的集成管理;使用DBCP实现数据库连接池。
  7. 数据模型层次说明

ODS:贴源层,存储原始数据,数据采集直接写入;

DWD:数据仓库明细层,存储从源数据抽去过来的明细数据;

DW:数据仓库层,保存经过数据降维汇聚的计算后生成的汇总数据;

DM:数据集市层,满足特定功能而建立的各种数据集市。

  1. 数据处理过程说明

  1. 数据采集模块从采集机采集相关业务数据;
  2. 数据采集模块定期把原始数据导入Hive库中的ODS层相关表中;实时数据及时写入kafka提供给spark streaming处理;公参数据写入mysql中。
  3. ETL模块从ODS层相关表中抽取数据到DWD层;
  4. ETL模块根据轻度汇总要求进行数据轻度汇总操作,并把汇总后的数据放到DW层中;
  5. 一些功能所需数据无法从轻度汇总表计算出来,需要从DWD中原始表进行汇总;
  6. ETL模块从DW层获取轻度汇总数据,根据各业务功能要求进一步汇总数据,形成DM层数据;
  7. 即席查询数据从Hive关联到Hbase中;
  8. Phoenix关联到HBase中,供页面查询使用;
  9. 部分ETL模块数据把Hive中汇总后数据导入MySQL中,供模型建模使用;

二、Hadoop运行:

mapreduce机制:

常用命令:

功能 命令
查看目录
hadoop fs -ls dir
上传文件
hadoop fs -put ${local file} ${hdfs file}
创建目录 hadoop fs -mkdir ${dirname}
获取文件
hadoop fs -get ${hdfs file} ${local file}
删除多个文件或目录
hadoop fs -rm ${hdfs file} ...
hadoop fs -rm -r ${hdfs file}...
复制文件
hadoop fs -cp ${hdfs file} ${hdfs file}
移动文件
hadoop fs -mv ${hdfs file} ${hdfs file}

三、hive和hbase比较:

 
Hive(非数据库)


Hbase(数据库)


适用场景


用于对一段时间内的数据进行分析查询,离线批处理


大数据的实时查询


特点


1、一种类SQL的引擎,运行MapReduce任务;

2、查询一般是全量查询,时间较长,可通过分区来优化;

3、基于行查询,定义时每行有固定列数据,每列数据固定大小;

4、操作:不支持更新操作


1、一种在Hadoop之上的NoSQL型Key/Value数据库;

2、查询是通过特定语言编写,可通过Phonenix实现类SQL功能;

3、基于列查询,可定义各种不同的列,每列数据大小不固定;

四、hive常用操作

hive 基础操作 说明
查看数据库 show databases  
使用数据库 use DbName  
删除数据库 drop database if exists DbName  CASCADE 如果数据库不为空,删除会报错,加上cascade可忽略
查看表 show tables in DbName ; show tables like ‘h*’  
创建表
内部表:CREATE TABLE page_view if not exists(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT ‘IP Address of the User‘)
COMMENT ‘This is the page view table‘
PARTITIONED BY(dt STRING, country STRING)
CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\001‘
COLLECTION ITEMS TERMINATED BY ‘\002‘
MAP KEYS TERMINATED BY ‘\003‘
STORED AS SEQUENCEFILE;


外部表:

CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT ‘IP Address of the User‘,
country STRING COMMENT ‘country of origination‘)
COMMENT ‘This is the staging page view table‘
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\054‘
STORED AS TEXTFILE
LOCATION ‘<hdfs_location>‘;

加载表
LOAD DATA LOCAL INPATH `/tmp/pv_2013-06-08_us.txt` INTO TABLE c02 PARTITION(date=‘2013-06-08‘, country=‘US‘)
 

注:

存储格式有四种种:textfile、sequencefile(二进制文件)、RCFfile(行列存储相结合)、ORC

只有TEXTFILE表能直接加载数据,必须本地load数据和external外部表直接加载运路径数据,都只能用TEXTFILE表。更深一步,hive默认支持的压缩文件(hadoop默认支持的压缩格式)也只能用TEXTFILE表直接读取。其他格式不行。可以通过TEXTFILE表加载后insert到其他表中。

内外部表区别:

创建内部表时,会将数据移动到数据仓库指向的路径,存储在hive.metastore.warehouse.dir路径属性下,默认情况下位于/user/hive/warehouse/databasename.db/tablename/ 文件夹路径中,删除内部表会将元数据和数据同步删除。创建外部表时,仅记录数据所在的路径(location),不对数据的位置做任何变化,外部表文件可以由Hive外部的进程访问和管理。外部表可以访问存储在Azure Storage Volumes(ASV)或远程HDFS位置等源中的数据,删除外部表时,只删除元数据,不删除文件中数据。

五、HBase Shell的一些基本操作命令,列出了几个常用的HBase Shell命令,如下:

查看存在哪些表 list
创建表 create ‘表名称‘, ‘列名称1‘,‘列名称2‘,‘列名称N‘
添加记录 put ‘表名称‘, ‘行名称‘, ‘列名称:‘, ‘值‘
查看记录 get ‘表名称‘, ‘行名称‘
查看表中的记录总数 count ‘表名称‘
删除记录 delete ‘表名‘ ,‘行名称‘ , ‘列名称‘
删除一张表 先要屏蔽该表,才能对该表进行删除,第一步 disable ‘表名称‘ 第二步 drop ‘表名称‘
查看所有记录 scan "表名称"
查看某个表某个列中所有数据 scan "表名称" , [‘列名称:‘]
更新记录 就是重写一遍进行覆

原文地址:https://www.cnblogs.com/pengpp/p/9104901.html

时间: 2024-10-09 11:39:22

大数据应用测试经验总结的相关文章

Hadoop大数据高薪工作经验分享

分享超人学院90后小伙,Hadoop大数据高薪工作经验分享 http://pan.baidu.com/play/video#video/path=%2F%E5%A4%A7%E6%95%B0%E6%8D%AE%2F%E8%B6%85%E4%BA%BA%E5%AD%A6%E9%99%A2%E9%AB%98%E8%96%AA%E5%B0%B1%E4%B8%9A%E8%A7%86%E9%A2%91%E5%88%86%E4%BA%AB%2F90%E5%90%8EHadoop%E5%B7%A5%E4%BD%

大数据项目测试&lt;二&gt;项目的测试工作

大数据的测试工作: 1.模块的单独测试 2.模块间的联调测试 3.系统的性能测试:内存泄露.磁盘占用.计算效率 4.数据验证(核心) 下面对各个模块的测试工作进行单独讲解. 0. 功能测试 1. 性能测试 2. 自动化测试 3. 文档评审 4. 脚本开发 一.后台数据处理端 后端的测试重点,主要集中在数据的采集处理.标签计算效率.异常数据排查(功能),测试脚本编写(HiveQL).自动化脚本编写(造数据.数据字段检查等) 1.数据的采集处理(Extract-Transform-Load) ETL

SharePoint 2013 列表关于大数据的测试

本文主要介绍SharePoint列表库的效率问题,一直以来以为阙值5k,超过会线性下降,需要分文件夹存放:或许这是之前版本的描述,但是2013版本通过测试,真心不是这么一回事儿. 下面,简单介绍下自己的测试过程: 1.创建一个测试列表,Data Test如下图: 2.创建控制台程序,添加插入数据代码,如下: 3.添加的代码: using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["Data Test"]; String

SharePoint 2013 列表关于大数据的测试&lt;二&gt;

1.给测试列表添加查阅项字段,100个,代码如下: 2.插入测试数据的方法,注意查阅项字段的格式,代码如下: 3.插入10w条数据,时间花费如下(不建议List[LISTNAME].Items.Add,会比较慢): 4.查看列表设置,数据有10w条,阙值设置500w,如下图: 5.进入AllItems页面,发现查阅项字段数大于限制(8个),如下图: 6.修改查阅项限制数目(修改为500),如下图: 7.数据量10w,查阅项字段100个时的测试数据,如下表格: 表一:分页30,LookUp字段50

大数据课堂测试日总结

到目前为止,主要完成了地域维度标准化和关键值的提取. 地域维度标准化主要是根据表中联系单位地址一栏给出的详细地区数据,进行字符串分割得到想要的地域维度. 联系单位地址栏原始数据: 我们要把这些地域信息规范到县区一级,就可以用java中的split函数进行分割,就可以得到标准地域维度. 接下来就是行政编码,我们需要从网络上寻找一个国家标准的行政编码表,然后对应标准维度进行匹配. 2.关键字的提取: 题目要求在每个表的项目简介字段中提取相应的关键字.经过观察,这些字段的描述内容都是中文,所以关键字的

大数据课堂测试3——数据清洗(1)

两阶段数据清洗: (1)第一阶段:把需要的信息从原始日志中提取出来 ip:    199.30.25.88 time:  10/Nov/2016:00:01:03 +0800 traffic:  62 文章: article/11325 视频: video/3235 (2)第二阶段:根据提取出来的信息做精细化操作 ip--->城市 city(IP) date--> time:2016-11-10 00:01:03 day: 10 traffic:62 type:article/video id

决胜大数据时代:Hadoop&amp;Yarn&amp;Spark企业级最佳实践(8天完整版脱产式培训版本)

Hadoop.Yarn.Spark是企业构建生产环境下大数据中心的关键技术,也是大数据处理的核心技术,是每个云计算大数据工程师必修课. 课程简介 大数据时代的精髓技术在于Hadoop.Yarn.Spark,是大数据时代公司和个人必须掌握和使用的核心内容. Hadoop.Yarn.Spark是Yahoo!.阿里淘宝等公司公认的大数据时代的三大核心技术,是大数据处理的灵魂,是云计算大数据时代的技术命脉之所在,以Hadoop.Yarn.Spark为基石构建起来云计算大数据中心广泛运行于Yahoo!.阿

大数据项目中的QA需要迎接新的挑战

大数据项目中的QA需要迎接新的挑战 根据IDC全球半年度大数据和分析支出指南的最新预测,到2022年全球大数据和业务分析解决方案的收入将达到2600亿美元.在大数据和业务分析解决方案上投资增长最快的行业包括银行(复合年增长率13.3%).医疗.保险.证券和投资服务.电信,每个行业复合年增长率都是12.8%.由此可见,大数据类项目在未来的地位将会越发重要,而作为QA,在大数据项目急速扩张的大背景下,也将迎来新的机遇和挑战. 一.大数据项目的数据特点 大数据项目与传统交付项目的不同之处在于其关注的重

大数据学习的流程方案

大数据成为了当下发展的一种趋势,很多人去追求大数据的学习,但是苦于无从下手,今天编者根据自己的经验系统总结一下大数据学习的方略: 第一步:感性认识,找准思路 (1)看一些大数据发展及应用,了解市场形势 (2)阅读大数据相关书籍,了解知识架构 对上面基本知识有一个了解过程之后,明确自己的思路,就可以进入下一步学习; 第二步:理论学习,扎实基础 大数据平台学习路径:   预备课程 1. 大数据平台Linux基础 2. 大数据平台Java基础 3. 大数据平台Python基础   基础课程 1.  大