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…...
Windows 11系统优化终极指南:一键清理预装软件与隐私保护
Windows 11系统优化终极指南:一键清理预装软件与隐私保护 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各种其他更改以简化…...
YOLOE新手教程:如何用一行代码加载预训练模型
YOLOE新手教程:如何用一行代码加载预训练模型 1. 引言:为什么选择YOLOE? 在计算机视觉领域,目标检测一直是核心任务之一。传统检测模型需要预先定义好所有可能的类别,遇到新物体时往往束手无策。YOLOE(Yo…...
抖音无水印视频下载器技术架构深度解析:从HTTP解析到跨平台应用实现
抖音无水印视频下载器技术架构深度解析:从HTTP解析到跨平台应用实现 【免费下载链接】douyin_downloader 抖音短视频无水印下载 win编译版本下载:https://www.lanzous.com/i9za5od 项目地址: https://gitcode.com/gh_mirrors/dou/douyin_downloader …...
【AI视频从0到1系统课】导师全程陪跑、课程持续更新、适合零基础!
在 AI 视频工具日益同质化的当下,课程的核心竞争力已从“教你用什么工具”转向“如何帮你拿到结果”。面对“2026 全新升级”与“陪伴式教育”这类宣传语,阅读的关键在于验证其服务颗粒度与学习转化率。 一、 解构“陪伴式教育”:关注反馈机制…...
Janus-Pro-7B基础教程:CFG权重与图像多样性/保真度平衡策略
Janus-Pro-7B基础教程:CFG权重与图像多样性/保真度平衡策略 1. 认识Janus-Pro-7B多模态模型 Janus-Pro-7B是一个强大的统一多模态AI模型,它不仅能理解图片内容,还能根据文字描述生成高质量的图像。这个模型有74亿参数,支持图像描…...
Windows右键菜单终极整理指南:用ContextMenuManager轻松打造高效工作流
Windows右键菜单终极整理指南:用ContextMenuManager轻松打造高效工作流 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾经在Windows系统中为…...
毕业设计题目100个:面向工程实践的技术选型与实现指南
最近在帮学弟学妹们看毕业设计,发现一个挺普遍的现象:很多同学想法天马行空,但一到动手实现就卡壳,要么技术栈选得五花八门拼不起来,要么代码写得像一锅粥,后期根本没法维护。选题“假大空”、实现“散乱差…...
AI写专著必备:优质工具大盘点,全方位提升专著撰写效率
撰写学术专著时,研究者需要在“内容的深度”和“覆盖的广度”之间找到一个恰当的平衡,而这正是许多人面临的主要难题。从深度出发,专著的核心论点需要具备足够的学术分量,不仅要清楚解答“是什么”,还应该深入探讨“为…...
VMware安装RHEL9连接Xshell与Linux基础命令vim练习
1、在VMware上创建虚拟机以及安装RHEL9操作系统,使用ssh进行远程连接2、文件管理命令练习: 1(1)在/opt目录下创建一个临时目录tmp;2(2)在临时目录下创建一个文件,文件名为a.txt;3、vi/vim练习:完成如下步骤(1)应用vi命令在/tmp文件夹下创建文…...
归并排序:稳定排序的典范
归并排序:稳定排序的典范 算法原理 核心思路 归并排序是一种基于分治思想的稳定排序算法,其核心思想是: 分解:将数组分成两个子数组,递归地对两个子数组进行排序合并:将两个已排序的子数组合并成一个有序数…...
