如何编译及使用hive-testbench生成Hive基准测试数据
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢
1.文档编写目的
前面Fayson介绍了《如何编译及使用TPC-DS生成测试数据》,在本篇文章Fayson主要介绍GitHub上的一个开源的项目hive-testbench,该项目主要基于TPC-DS进行封装利用MapReduce的方式快速的生成Hive基准测试数据,本篇文章主要介绍如何编译及使用hive-testbench生成指定数据量的Hive基准测试数据。
- 内容概述:
1.环境准备及编译hive-testbench
2.生成并加载数据
3.总结
- 测试环境:
1.RedHat7.3
2.采用root用户操作
2.环境准备
- 从GitHub官网clone hive-testbench源码,Git地址如下:
https://github.com/hortonworks/hive-testbench.git
(可左右滑动)
下载至本地目录
[root@ip-172-31-16-68 ~]# git clone https://github.com/hortonworks/hive-testbench.git
(可左右滑动)
2.安装hive-testbench编译依赖环境
[root@ip-172-31-16-68 ~]# yum -y install gcc gcc-c++
(可左右滑动)
3.编译并打包hive-testbench
这里Fayson只是用TPC-DS,所以主要介绍编译TPC-DS,TPC-H的编译方式一样只是使用的脚本为tpch-build.sh,在编译的过程中需要下载Maven和TPC-DS或TPC-H的源码工程,所以该编译节点需要有访问互联网的权限。
- 进入hive-testbench目录
[root@ip-172-31-16-68 ~]# cd hive-testbench/
[root@ip-172-31-16-68 hive-testbench]# ll
(可左右滑动)
2.在hive-testbench目录下执行如下脚本进行编译打包
[root@ip-172-31-16-68 hive-testbench]# ./tpcds-build.sh
(可左右滑动)
3.等待编译结束,如下显示则表示编译成功
至此已完成hive-testbench的编译
4.生成并加载数据
1.在hive-testbench目录下执行如下脚本生成并加载测试数据
[root@ip-172-31-16-68 hive-testbench]# ./tpcds-setup.sh 10 /extwarehouse/tpcds
(可左右滑动)
参数说明:
10表示生成的数据量大小GB单位
/extwarehouse/tpcds表数据数据生成的目录,目录不存在自动生成,如果不指定数据目录则默认生成到/tmp/tpcds目录下。
由上图可以看到生成数据的方式是向集群提交了一个MapReduce作业,使用这种方式生成测试数据会比前面Fayson介绍的《如何编译及使用TPC-DS生成测试数据》效率高。
2.等待脚本执行成功
有如上图显示则表示脚本执行成功,成功生成了测试数据并创建了tpcds_text_10和tpcds_bin_partitioned_orc_10两个数据库。
3.在命令行查看HDFS上的数据是否与我们指定的量一致
数据总量与指定10GB数据量一致(注意:这里生成数据会与指定的量有一些出入)
各个表大小
4.通过Hue验证生成的测试数据
可以看到生成了两个数据库分别为tpcds_text_10和tpcds_bin_partitioned_orc_10两个库。
生成了测试用的所有表, 并将数据load到相应的表中
5.总结
在编译hive-testbench项目时需要有外网环境,在编译的过程会下载Maven的安装包、下载Maven依赖以及TPC-DS的源码在后面的文章Fayson会结合真实环境通过脚本的方式运行TPC-DS的99条SQL来做Hive、Impala、Presto等服务的基准测试。
参考:
https://github.com/hortonworks/hive-testbench
提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
- 浅谈分布式事务
- 漫谈千亿级数据优化实践:一次数据优化实录
- Facebook开源游戏平台ELF:一个用于实时战略游戏研究的轻量级平台
- 用不到50行的Python代码构建最小的区块链
- 学习笔记CB002:词干提取、词性标注、中文切词、文档分类
- 深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
- 用Python从零开始构建反向传播算法
- 备战CDA数据分析竞赛!Kaggle赛题大揭秘
- 如何用Python将时间序列转换为监督学习问题
- Spring MVC的配置和使用
- Java可以如何实现文件变动的监听
- 借助GitHub搭建属于自己的maven仓库
- 如何使用 scikit-learn 为机器学习准备文本数据
- Hyperledger Fabric Chaincode 开发
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 同事问我MySQL怎么递归查询,我懵逼了...
- RocketMQ学习四-生产者producer
- 想有自己的博客吗?浏览器支持 MarkDown和语法高亮的最简单示例(使用markdown-it、highlight.js和mermaid)
- Golang--Go语言 五百行后台代码实现一简约的个人博客网站-TinyBlog
- RocketMQ学习5
- c语言调用go封装的动态库步骤及减小体积包的方法
- 深入理解JavaScript闭包之闭包的使用场景
- Spring Boot 到底是个啥?
- Spring Boot 整合 Thymeleaf
- webapp打包为Android的apk包的一种方法
- Android应用之Hybird混合开发,集成web页面的方法尝试
- Spring Boot 通过 XML 的方式整合 MyBatis
- layUI登录界面验证码功能模块儿封装
- go语言微信公众号开发后台接口封装
- 【DB宝14】在Docker中只需2步即可拥有Oracle 11g企业版环境(11.2.0.4)