1. 下载资源

我用的是 hortonworks 的版本,其他的也应该类似。

git clone git@github.com:hortonworks/hive-testbench.git

2. 编译

./tpcds-build.sh

如果目标服务器不能上网,或者不想环境再配置一遍,可以把编译之后的整个目录打包,上传到目标服务器上进行解压。

3. 生成数据

sh tpcds-setup.sh 3 /tmp/tpds-gen

第1个参数是数据规模,3 代表 3G,最小是 2,代表 2 G。此参数是必须的。
第 2 个参数是临时数据的位置。默认是 ${fs.defaultFS}/tmp/tpcds-generate

生成数据时,默认用beeline 连接 hiveserver2,用 zookeeper 做服务发现。如果我们没有配置,可以修改 tpcds-setup.sh 直接连接 hiveserver2。

默认连接 hiveserver2 的方式。

HIVE="beeline -n hive -u 'jdbc:hive2://localhost:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2?tez.queue.name=default' "

直接连接 hiveserver2 的方式

HIVE="beeline -n hive -u 'jdbc:hive2://localhost:10000 "

创建集群

1 个 master 节点,8 vcores, 32 G memory。
20 个 core 节点,4 vcores, 16G memory,高性能云磁盘 500GB。为 nodemanager 配置 4 vcores, 12 G 内存。

执行 query

进入 sample-queries-tpcds 目录,可以看到 99 个查询语句。
我们编写 query-all.sh 可以执行 99 个查询。

SCALE=3
LOGFILE=query-all-`date +"%Y%m%d-%H%M%S"`.log
for ((i=1;i < 100; i++)); doecho ""echo ""echo ""echo ""echo "Begin exec query${i} at `date +"%Y%m%d-%H:%M.%S"`" >> ${LOGFILE} 2>&1echo hive -e "use tpcds_bin_partitioned_orc_${SCALE}; source query${i}.sql" >> ${LOGFILE} 2>&1hive -e "use tpcds_bin_partitioned_orc_${SCALE}; source query${i}.sql" >> ${LOGFILE} 2>&1if [ $? != 0]; thenecho "End exec query${i} failed" >> ${LOGFILE} 2>&1 exit 1;fiecho "End exec query${i} successfully at `date +"%Y%m%d-%H:%M.%S"`" >> ${LOGFILE} 2>&1
done

修改 tez-site.xml

tez.counters 默认是 1200,比较小,改成 200000

<property><name>tez.counters.max</name><value>200000</value></property>

以 TEZ 的方式执行

由于 core 节点 4 vcores,16 G memory,每个容器可以 4G 内存。修改 hive-site.xml,把 container 的容量改为 4 G,并修改 jvm 参数。
hive-site.xml 添加以下内容:

<property><name>hive.tez.container.size</name><value>4096</value>
</property>
<property><name>hive.tez.java.opts</name><value>-server -Xmx3545m -Djava.net.preferIPv4Stack=true -XX:NewRatio=8 -XX:+UseNUMA -XX:+UseParallelGC -XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps</value>
</property>

执行 99 个 query。

nohup sh query-all.sh &

LLAP 测试

生成 LLAP 程序

由于 20 个 core 节点,每个 4 vcores,总共可以运行 80 个容器。hive 自动启动两个 TEZ APP,去除 Application Master的开销 和 LLAP AM 的开销。
因为每台服务器仅能启动一个 LLAP 后台进程,设置启动 18 个容器,每个容器 8 G 内存,1 个 executors。

hive --service llap --name llap-demo --instances 18 --cache 1280m --executors 1 --iothreads 1 --size 8000m --xmx 5000m --queue default --loglevel INFO

启动 LLAP 服务

llap-yarn-13Oct2021/run.sh

配置 hive-site.xml

<property><name>hive.execution.engine</name><value>tez</value>
</property>
<property><name>hive.llap.execution.mode</name><value>all</value>
</property>
<property><name>hive.execution.mode</name><value>llap</value>
</property>
<property><name>hive.llap.daemon.service.hosts</name><value>@llap-demo</value>
</property>
<property><name>hive.llap.daemon.memory.per.instance.mb</name><value>8000</value>
</property>
<property><name>hive.llap.daemon.num.executors</name><value>1</value>
</property>

执行 query

nohup sh query-all.sh &

可以看到,每次执行都生成新的日志文件。

Hive tpcds - 3 测试相关推荐

  1. Hive tpc-ds 性能测试

    TPC-DS是与真实场景非常接近的一个测试集,它包含7张事实表,17张纬度表,平均每张表含有18列.用这个数据集能够很好的模拟企业数据查询.报表生成以及数据挖掘等复杂应用. 安装tpc-ds工具 百度 ...

  2. linux查看hive安装目录,Linux下hive安装及测试

    前提:提前在linux下安装好了hadoop和mysql并且已经启动. apache-hive-2.1.1-bin.tar.gz mysql-connector-java-5.1.7-bin.jar ...

  3. hive数据去重测试

    需求对id进行去重 create table test100 (id int,month string,label int )row format delimitedfields terminated ...

  4. 使用TPC-H对Hive测试

    2019独角兽企业重金招聘Python工程师标准>>> 最近由于工作要求,需要对Hive进行一下测试.在一篇论文中看到使用TCP-H,上网查了一下还算是比较靠谱的一个基准测试程序,所 ...

  5. 性能提升约 7 倍!Apache Flink 与 Apache Hive 的集成

    导读:随着 Flink 在流式计算的应用场景逐渐成熟和流行,如果 Flink 能同时把批量计算的应用场景处理好,就能减少用户在使用 Flink 时开发和维护的成本,并且能够丰富 Flink 的生态.S ...

  6. 性能提升约7倍!Apache Flink 与 Apache Hive 的集成

    导读:随着 Flink 在流式计算的应用场景逐渐成熟和流行,如果 Flink 能同时把批量计算的应用场景处理好,就能减少用户在使用 Flink 时开发和维护的成本,并且能够丰富 Flink 的生态.S ...

  7. hive 取消打印日志信息_Hive及其相关大数据组件

    HDFS架构 Hadoop 分布式文件系统(HDFS)是 Hive 存储数据的地方,简单了解HDFS的基本机制和读写工作机制,对于排查HiveSQL 程序是否由于数据存储引发的性能问题有较大的帮助. ...

  8. Hive SQL查询效率提升之Analyze方案的实施

    0.简介 Analyze,分析表(也称为计算统计信息)是一种内置的Hive操作,可以执行该操作来收集表上的元数据信息.这可以极大的改善表上的查询时间,因为它收集构成表中数据的行计数,文件计数和文件大小 ...

  9. Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别

    Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...

最新文章

  1. unity 在代码中创建spine动画组件
  2. File类 读取文件
  3. linux服务器磁盘格式,linux下查看磁盘分区的文件系统格式
  4. Mybatis中的attempted to return null from a method with a primitive return type (int).异常
  5. 网站开发流程-WEB开发的流程
  6. linux kill 子进程6,linux – Bash:杀死子进程中的所有进程
  7. AS3还可以通过CDATA标签声明多行字符串
  8. linux关防火墙和SElinux
  9. 制作验证码使用到的函数
  10. 用 ElementTree 在 Python 中解析 XML
  11. 鉴客 C# 抓取页面(带认证)
  12. C++编程 中文转换成Unicode
  13. LeetCode刷题-反转字符串中的元音字母
  14. 助力2021杭州市网络安全宣传周 | 世平信息精彩活动合集
  15. Java核心类库之(类加载器、反射机制、模块化)
  16. access查询设计sol视图_选择查询-在access中如何建立一个选择查询只查询一个信?在access 爱问知识人...
  17. 安卓APP蓝牙上位机的编写二——搜索附近蓝牙设备
  18. java静态代码块和实例代码块
  19. Praat脚本-019 | Praat批量修改音频通道数
  20. web————http(报文详解篇)

热门文章

  1. Object和Objects的区别
  2. 用python给表格加边框_Python-PPTX:更改表格样式或向单元格添加边框
  3. 天刀手游服务器维护时间20日,《天涯明月刀手游》12月17日服务器维护更新公告...
  4. 软文营销文章的类型有哪些?
  5. USG 6000v web访问
  6. 6.3 图层的隐藏和锁定 [Illustrator CC教程]
  7. 【C++要笑着学】面向对象总结 | 瞎编的C++小故事 | 再次理解封装 | 再次理解面向对象
  8. 使用Excel批量提取文件名
  9. blender拉丝纹理
  10. ios13全选手势_独家整理!20个iOS 13使用技巧和隐藏功能,让你的iPhone更好用