EMR集群运行TPC-DS在云盘和OSS中的对比
1.简介
TPC-DS是大数据领域最为知名的Benchmark标准。本文介绍使用阿里云EMR集群运行TPC-DS在云盘和OSS中的表现对比。
2.环境准备
1.创建EEMR-5.10.1集群
1个master,2个core,3台机器都s是4c16g。
2.安装Git和Maven
sudo yum install -y git maven
3.下载TPC-DS Benchmark工具。
git clone https://github.com/hortonworks/hive-testbench.git
//如果访问github失败可以手动下载
//https://github.com/hortonworks/hive-testbench/archive/hdp3.zip?spm=a2c4g.11186623.0.0.2aef5cb4OKS4v0&file=hdp3.zip
4.编译并打包数据生成器
cd hive-testbench
./tpcds-build.sh
5.生成并加载数据
1.检查hive数据库是否存在
hive -e "desc database tpcds_bin_partitioned_orc_xx"
2.清理已经存在的数据库
hive -e "drop database tpcds_bin_partitioned_orc_xx cascade"
3.配置Hive服务地址
tpcds-setup.sh脚本默认配置的Hive服务地址与EMR集群环境不一致,所以需要将脚本中HiveSever的地址替换为EMR集群中的Hive服务地址。具体命令如下:
sed -i 's/localhost:2181\/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2?tez.queue.name=default/master1-1:10000\//' tpcds-setup.sh
//脚本默认配置的Hive服务地址为:jdbc:hive2://localhost:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2?tez.queue.name=default。通过上述命令替换后的Hive服务地址为:jdbc:hive2://master-1-1:10000/。
4.修复开源工具配置问题
部分参数在Hive 2和Hive 3等开源版本中不支持,继续使用TPC-DS会导致作业报错,所以需要参考以下命令替换参数。
sed -i 's/hive.optimize.sort.dynamic.partition.threshold=0/hive.optimize.sort.dynamic.partition=true/' settings/*.sql
5.生成并加载数据。
生成的数据可以保存在HDFS和OSS中,2者的区别就是创建库的时候给定存储的位置不一样。如果使用HDFS我们不用手动创建数据库,使用OSS我们手动创建数据库并指定数据库存储在OSS中。
1.使用HDFS存储数据的场景。
MR集群默认将TPC-DS Table数据保存在HDFS上。执行如下命令生成并加载数据:
FORMAT=parquet ./tpcds-setup.sh xx //xx我们最开始写2就行了,表示生成2G的数据,FORMAT默认使用orc
2.使用OSS存储数据的场景
通过EMR存储和计算分离的架构能力,可以很方便的做到将数据保存在OSS。具体操作步骤如下:
.//创建数据库并设置数据库使用的存储位置是oss
create database if not exists oss_tpcds_bin_partitioned_orc_xx;
//<bucket-name>需要改成和EMR集群在同一地域的OSS Bucket名称。
alter database oss_tpcds_bin_partitioned_orc_xx set location 'oss://<bucket-name>/warehouse/oss_tpcds_bin_partitioned_orc_xx.db';
//修改加载数据库的脚本
cp tpcds-setup.sh oss-tpcds-setup.sh
//DATABASE=tpcds_bin_partitioned_${FORMAT}_${SCALE}改为DATABASE=oss_tpcds_bin_partitioned_${FORMAT}_${SCALE},将数据加载到前面创建的库中去
vim oss-tpcds-setup.sh
//生成并加载数据,执行完成之后我们就可以看到oss的buket中已经有数据了
export FORMAT=parquet
nohup ./oss-tpcds-setup.sh xx
6.运行TPC-DS SQL
1.使用Hive运行TPC-DS SQL
可以运行单个SQL也可以批量运行SQL,批量运行的SQL有99个sql,存放在sample-queries-tpcds工作目录下。
1.单独运行
cd sample-queries-tpcds
hive --database tpcds_bin_partitioned_orc_xx
set hive.execution.engine=tez;
source query1.sql;
2.批量运行
cd hive-testbench
# 生成一个Hive配置文件,并指定Hive执行引擎为Tez。
echo 'set hive.execution.engine=tez;' > sample-queries-tpcds/testbench.settings
nohup ./runSuite.pl tpcds xx > tpc-ds-orc-2-test.csv//如果要执行存储在oss上的数据,如果要执行的parquet的表,也相应改一下就行
cp runSuite.pl oss-runSuite.pl
//将tpcds' => "tpcds_bin_partitioned_orc_$scale"改为tpcds' => "oss_tpcds_bin_partitioned_orc_$scale"
vim oss-runSuite.pl
nohup ./oss-runSuite.pl tpcds xx > oss-tpc-ds-orc-2-test.csv
2.使用Spark运行TPC-DS SQL
7.云盘和OSS对比
相关文章:
EMR集群运行TPC-DS在云盘和OSS中的对比
1.简介 TPC-DS是大数据领域最为知名的Benchmark标准。本文介绍使用阿里云EMR集群运行TPC-DS在云盘和OSS中的表现对比。 2.环境准备 1.创建EEMR-5.10.1集群 1个master,2个core,3台机器都s是4c16g。 2.安装Git和Maven sudo yum install -y git maven3.下载TPC-DS Benchmark工…...
菜鸟在 windows 下 python 中安装 jupyter 踩坑要点 、被神化的 VsCode
我平时用不到 python ,更没用过 jupyter ,因此我的 python知识仅限于知道有 python 这么个编程语言,会写个 print("Hello World!!!") 而已,完全没听过 jupyter ,因为某些原因今天需要安装下 jupyter 看看&am…...
k8s简单搭建
前言 最近学习k8s,跟着网上各种教程搭建了简单的版本,一个master节点,两个node节点,这里记录下防止以后忘记。 具体步骤 准备环境 用Oracle VM VirtualBox虚拟机软件安装3台虚拟机,一台master节点,两台…...
计算机SCI期刊审稿人,一般关注论文的那些问题? - 易智编译EaseEditing
编辑主要关心: (1)文章内容是否具有足够的创新性? (2)文章主题是否符合期刊的受众读者? (3)文章方法学是否合理,数据处理是否充分? (…...
Docker迁移以及环境变量问题
问题一描述将docker容器通过docker export命令打包,传输到另外的服务器,再通过docker import命令导入后,发现原来docker容器中的环境变量失效了。解决方案1. 【无效方案】直接在docker容器中通过export命令设置环境变量。export LD_LIBRARY_P…...
Sphinx文档生成工具(二)
rst语法 官方的语法手册 行内的样式: #斜体 *message* #粗体 **message** #等宽 不能有换行 message标题 一级标题 ^^^^^^^^ 二级标题 --------- 三级标题 >>>>>>>>> 四级标题 ::::::::: 五级标题六级标题 """"…...
Python快速上手系列--JSON--入门篇
本章我们来看看json的一些应用。简单易懂还实用。一起来看看数据类型以及一些语法规则吧1、数字(整数或浮点数) 如:{"age":18, "score":70.5} 注意,数字直接写,不需要带任何符号2、字符串…...
axios中的GET POST PUT PATCH,发送请求时params和data的区别
axios 中 get/post请求方式 1. 前言 最近突然发现post请求可以使用params方式传值,然后想总结一下其中的用法。 2.1 分类 经过查阅资料,get请求是可以通过body传输数据的,但是许多工具类并不支持此功能。 在postman中,选择get请…...
hume项目k8s的改造
hume项目k8s的改造 一、修改构建目录结构 1、在根目录下添加build-work文件夹 目录结构如下 [rootk8s-worker-01 build-work]# tree . . ├── Dockerfile ├── hume │ └── start.sh └── Jenkinsfile2、每个文件内容如下 Dockerfile FROM ccr.ccs.tencentyun…...
MACD红二波选股公式,选出MACD二次翻红的标的
经过一段上涨行情之后,市场出现了时间稍长或者幅度稍大的调整,MACD指标的DIF、DEA会出现死叉,柱线由红色转变为绿色。 而调整时间较短或者幅度较小,MACD红柱会缩短,但不出现绿柱,之后红柱开始变长ÿ…...
mac上安装mysql
mac上安装mysql1. 关于Linux上安装mysql2. 下载安装2.1 下载2.2 安装3. 客户端连接mysql3.1 先查看mysql服务3.2 连接mysql客户端3.2.1 终端使用命令连接3.2.2 可视化工具连接3.3 其他简单操作(启动服务等)3.3.1 可视化界面操作4. 配置环境变量4.1 配置环…...
Django 模型继承问题
文章目录Django 模型继承问题继承出现的情况Meta 和多表继承Meta 和多表继承继承与反向关系指定父类连接字段代理模型QuerySet 仍会返回请求的模型基类约束代理模型管理器代理继承和未托管的模型间的区别多重继承不能用字段名 "hiding"在一个包中管理模型Django 模型…...
Vue3篇.01-简介及基本使用,项目创建方式, 模板语法, 事件监听, 修饰符
一.简介1.概念Vue 是一款用于构建用户界面的 JS框架, 基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型, 高效地开发用户界面。渐进式框架, 适应不同需求进行开发。两个核心功能:声明式…...
别学英语了,真的
文 / 王不留(微信公众号:王不留) 这两年,很多朋友加我微信后,第一句常是,学英语有什么用啊? 我会统一给出真诚答复:没用,真的。 看新闻,中文海量信息已经严重…...
CRM系统五大技巧集成Excel为销售流程赋能
销售过程中有很多情况会降低团队的效率。通过正确的实施CRM客户管理系统,可以帮助您的企业自动执行手动任务、减少错误并专注于完成交易。这里有5个技巧,可以帮助您的销售人员通过CRM集成Excel为销售流程赋能并提高他们的整体效率。 技巧1:将…...
交通部互通互联码的根证书规则
引言 为了更好的服务交通互通互联码而更新这篇文章。 中金根证书其实是可以自己生成的。 代码内调整 中心公钥索引要保证自己的唯一性。 此处的唯一,是要保证在机具侧的唯一,因为他要根据这个索引去查找证书以及公钥。 提供根公钥给机具侧 生成的公钥…...
Map和Set(Java详解)
在开始详解之前,先来看看集合的框架: 可以看到Set实现了Collection接口,而Map又是一个单独存在的接口。 而最下面又分别各有两个类,分别是TreeSet(Map)和 HashSet(Map)。 TreeSet&…...
Vue 3的响应式机制
什么是响应式 Js代码是自上而下执行的,结合下面代码看,代码执行后,会打印两次double的结果,结果也都是2,即使修改了代码中count的值后,double的值也不会发生任何改变。 let count 1 let double count * …...
30岁了,说几句大实话
是的,我 30 岁了,还是周岁。 就在这上个月末,我度过了自己 30 岁的生日。 都说三十而立,要对自己有一个正确的认识,明确自己以后想做什么,能做什么。 想想时间,过得真快。 过五关斩六将&…...
AsyncTask使用及源码查看Android P
AsyncTask AsyncTask用于处理耗时任务,可以即时通知进度,最终返回结果。可以用于下载等处理。 使用 实现类继承三个方法 1. doInBackground后台执行,在此方法中进行延时操作 /*** Override this method to perform a computation on a back…...
花2个月面过华为测开岗,拿个30K不过分吧?
背景介绍 美本计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实…...
JAVA练习51-最大子数组和
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目-最大子数组和 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 2月15日练…...
Inception Transformer
paper链接: https://arxiv.org/abs/2205.12956v2 code链接: https://github.com/sail-sg/iFormer Inception Transformer一、引言二、实现细节三、实验一、分类二、检测三、分割四、消融实验一、引言 最近的研究表明,Transformer具有很强的建立远程依赖关系的能力…...
10分钟学会数据库压力测试,你敢信?
目录 前言 查看数据库版本 下载驱动: 菜单路径 配置 Variable Name Bound to Pool模块配置 Connection pool configuration模块配置 Database Connection Configuration模块配置 菜单路径 Variable Name Bound to Pool 脚本结构 脚本(执行查询…...
论文阅读 | Video Super-Resolution Transformer
引言:2021年用Transformer实现视频超分VSR的文章,改进了SA并在FFN中加入了光流引导 论文:【here】 代码:【here】 Video Super-Resolution Transformer 引言 视频超分中有一组待超分的图片,因此视频超分也经常被看做…...
7-6 带头节点的双向循环链表操作
本题目要求读入一系列整数,依次插入到双向循环链表的头部和尾部,然后顺序和逆序输出链表。 链表节点类型可以定义为 typedef int DataType; typedef struct LinkedNode{DataType data;struct LinkedNode *prev;struct LinkedNode *next; }LinkedNode;链…...
npm publish 、 npm adduser 提示 403 的问题
0. 查看使用的源:npm config get registry1. 如果使用的不是官方的源,切换:npm config set registry https://registry.npmjs.org/2. 登录:npm adduser3. 查看是否登录成功:npm whoami4. 执行发布命令:npm …...
Java 8的函数式接口使用示例
什么是函数式接口 有且只有一个抽象方法的接口被称为函数式接口,函数式接口适用于函数式编程的场景,Lambda就是Java中函数式编程的体现,可以使用Lambda表达式创建一个函数式接口的对象,一定要确保接口中有且只有一个抽象方法&…...
2023年企业如何改善员工体验?为什么员工体验很重要?
什么是员工体验?大约 96% 的企业领导者表示,专注于员工体验可以更轻松地留住顶尖人才。[1] 这还不是全部。令人震惊的是,87%的企业领导者还表示,优先考虑员工的幸福感将给他们带来竞争优势。尽管有这些发现,但只有19%的…...
设计模式:桥接模式让抽象和实现解耦,各自独立变化
一、问题场景 现在对”不同手机类型“的 “不同品牌”实现操作编程(比如: 开机、关机、上网,打电话等) 二、传统解决方案 传统方案解决手机使用问题类图: 三、传统方案分析 传统方案解决手机操作问题分析 1、扩展性问题(类爆炸),如果我们…...
淄博高端网站建设公司/google chrome
2019独角兽企业重金招聘Python工程师标准>>> 最近在写android程序,要经常用到BaseAdapter,用多了觉得很不好用,代码很多冗余。于是网上找个好的替代品,发现有一个叫做easy-adapter的库,试用了下觉得很好用&…...
手表网站代码/2022最近的新闻大事10条
▣ 作者 六爷 | 互联网营销官(ID:HLWCMO)随着“二次元”文化破圈,目前已发展为拥有4亿人群的庞大规模,主要涉及动画、漫画、游戏、小说等多个领域。二次元的受众群体正是当下占据消费主力军的年轻人,因此,品牌为了迎合…...
mip网站有什么好处/性能优化工具
tf.matmul是矩阵的乘法,即tf.matmul(x,y)中的x和y要满足矩阵的乘法规则,例如x[2,3],y[3,2] tf.multiply是两个矩阵对应的数据相乘,所以两个矩阵的形式必须相同,即tf.multiply(x,y)中…...
直销软件网/谷歌seo服务
Android Studio: AndroidManifest.xml:11: AAPT: error: attribute android:dataExtractionRules not found. flyfish 错误如图 打开AndroidManifest.xml文件 删除 dataExtractionRules 这句...
上海网站设/宁波网站推广专业服务
函数 //将顶点位置从模型空间转换到剪裁空间 float4 UnityObjectToClipPos(float4 v) //输入一个模型空间中的顶点位置,返回世界空间中从该点到摄像机的观察方向 float3 WorldSpaceViewDir(float4 v) //输入一个模型空间中的顶点位置,返回模型空间中从…...
网站审核备案 几天/关键词优化的原则
我有一个密码保护Excel文件的问题。情况是,我有一个zip文件,其中有一个Excel文件。我需要编写一个Java程序,以密码保护Excel文件。因此,用户应该能够解压缩文件(压缩文件无需密码保护)。但是,Excel需要使用密码保护。当…...