Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive...
Transcript of Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive...
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调优指导
Kunpeng 916 FusionInsight HD C80
Hive 组件性能调优指导
文档版本 01
发布日期 2019-06-28
华为技术有限公司
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 i
版权所有 © 华为技术有限公司 2019。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传
播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务
或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示
的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本
文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129
网址: http://e.huawei.com
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 前言
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 ii
前言
概述
本文档详细的描述了基于 FusionInsight HD V100R002C80 集群环境,如何对 Hive 组件
进行测试和性能调优的过程。
读者对象
本文档主要适用于以下人员:
大数据测试工程师
符号约定
在本文中可能出现下列标志,它们所代表的含义如下。
符号 说明
用于警示紧急的危险情形,若不避免,将会导致人员死亡或严重
的人身伤害。
用于警示潜在的危险情形,若不避免,可能会导致人员死亡或严
重的人身伤害。
用于警示潜在的危险情形,若不避免,可能会导致中度或轻微的
人身伤害。
用于传递设备或环境安全警示信息,若不避免,可能会导致设备
损坏、数据丢失、设备性能降低或其它不可预知的结果。
“注意”不涉及人身伤害。
用于突出重要/关键信息、最佳实践和小窍门等。
“说明”不是安全警示信息,不涉及人身、设备及环境伤害。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 前言
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 iii
修改记录
文档版本 发布日期 修改说明
01 2019-06-30 第一次正式发布。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 目 录
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 iv
目 录
前言 ........................................................................................................................................... ii
1 Hive 简介 ................................................................................................................................ 1
2 部署环境 ................................................................................................................................. 3
2.1 基础环境 .............................................................................................................................................................................. 3
2.1.1 物理组网 ........................................................................................................................................................................... 3
2.1.2 硬件配置 ........................................................................................................................................................................... 4
2.1.3 软件版本 ........................................................................................................................................................................... 5
2.2 集群部署 .............................................................................................................................................................................. 5
2.2.1 节点信息 ........................................................................................................................................................................... 5
2.2.2 组件部署 ........................................................................................................................................................................... 6
2.2.3 集群检查 ........................................................................................................................................................................... 7
3 Hive 测试内容 ......................................................................................................................... 8
3.1 测试方法 .............................................................................................................................................................................. 8
3.1.1 测试工具 ........................................................................................................................................................................... 8
3.1.2 测试数据 ........................................................................................................................................................................... 9
3.1.3 测试步骤 ......................................................................................................................................................................... 10
3.2 测试用例 ............................................................................................................................................................................ 11
3.2.1 IO 密集型测试 ................................................................................................................................................................ 11
3.2.2 CPU 密集型测试............................................................................................................................................................. 12
3.2.3 均衡型 SQL 测试 ........................................................................................................................................................... 14
3.3 衡量指标 ............................................................................................................................................................................ 15
4 Hive 性能调优 ....................................................................................................................... 16
4.1 硬件调优 ............................................................................................................................................................................ 16
4.2 操作系统调优.................................................................................................................................................................... 16
4.3 ZooKeeper 组件优化 ......................................................................................................................................................... 20
4.4 HDFS 组件优化 ................................................................................................................................................................. 20
4.5 Yarn 组件优化 .................................................................................................................................................................... 24
4.6 Beeline 命令行参数 ........................................................................................................................................................... 27
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 1 Hive 简介
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 1
1 Hive 简介
Hive 是建立在 Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对
结构化/半结构化数据进行批量分析汇总完成数据计算,架构如图 1-1 所示,模块说明
如表 1-1 所示。Hive 提供类似 SQL 的 HQL(Hive Query Language)语言操作结构化数
据,其基本原理是将 HQL 语言自动转换成 MapReduce 任务,从而完成对 Hadoop 集群
中存储的海量数据进行查询和分析。
图1-1 Hive 架构
表1-1 模块说明
模块名称 功能描述
HiveServer 一个集群内可部署多个 HiveServer,负荷分担。对外提供 Hive 数
据库服务,将用户提交的 HQL 语句进行编译,解析成对应的
Yarn 任务或者 HDFS 操作,从而完成数据的提取、转换、分析。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 1 Hive 简介
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 2
模块名称 功能描述
MetaStore 一个集群内可部署多个 MetaStore,负荷分担。提供 Hive 的元数
据服务,负责 Hive 表的结构和属性信息读、写、维护和修改。
提供 Thrift 接口,供 HiveServer、Spark、WebHCat 等 MetaStore
客户端来访问,操作元数据。
WebHCat 一个集群内可部署多个 WebHCat,负荷分担。提供 Rest 接口,
通过 Rest 执行 Hive 命令,提交 MapReduce 任务。
Hive 客户端 包括人机交互命令行 Beeline、提供给 JDBC 应用的 JDBC 驱动、
提供给 Python 应用的 Python 驱动、提供给 Mapreduce 的
HCatalog 相关 JAR 包。
ZooKeeper ZooKeeper 作为临时节点记录各 HiveServer 实例的 IP 地址列表,
客户端驱动连接 ZooKeeper 获取该列表,并根据路由机制选取对
应的 HiveServer 实例。
HDFS/HBase 集
群
Hive 表数据存储在 HDFS 集群中。
MapReduce/Yarn
集群
提供分布式计算服务:Hive 的大部分数据操作依赖 MapReduce,
HiveServer 的主要功能是将 HQL 语句转换成 MapReduce 任务,
从而完成对海量数据的处理。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 2 部署环境
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 3
2 部署环境
2.1 基础环境
2.2 集群部署
2.1 基础环境
2.1.1 物理组网
物理环境 FusionInsight 采用 Manager*2+Controller*3+Datanode*6 的部署方案,其中,
Manager 与 Controller 节点混合部署。在网络层面,管理与业务分离部署,管理网络使
用 GE 电口来进行网络间的通信,业务网络使用 10GE 光口来进行网络间的通信,管理
与业务网络皆为二层网络。组网图如图 2-1 所示,其中 MN 代表 Manager 节点,CN 代
表 Controller 节点,DN 代表 Datanode 节点。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 2 部署环境
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 4
图2-1 FusionInsight 集群组网图
2.1.2 硬件配置
FusionInsight 所使用的环境如表 2-1 所示。
表2-1 FusionInsight 集群使用的硬件配置
硬件环境 Kunpeng X86
服务器型号 TaiShan 2280 RH2288H V5
处理器 Kunpeng 916 Intel(R) Xeon(R) CPU 4114
核数 32 核*2 10 核*2
主频 2400MHz 2200 MHz
内存大小 256GB Manager | Controller 节点:128GB
Datanode 节点:256GB
内存频率 2400MHz 2400MHz
网卡 业务 10GE,管理 GE 业务 10GE,管理 GE
硬盘 系统盘:1*RAID1(2*600G 系统盘:1*RAID1(2*600G
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 2 部署环境
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 5
硬件环境 Kunpeng X86
SAS HDD)
数据盘:8*RAID0(1*4T SATA
HDD)
SAS HDD)
数据盘:8*RAID0(1*2T
SATA HDD)
RAID 卡 LSI SAS3108 LSI SAS3508
数据盘文件系统 xfs xfs
2.1.3 软件版本
FusionInsight 集群使用到的相关软件版本如表 2-2 所示。
表2-2 FusionInsight 集群使用的软件版本
软件版
本
Kunpeng X86
OS Red Hat Enterprise Linux Server release
7.4 (Maipo)
Red Hat Enterprise Linux Server
release 7.4 (Maipo)
JDK openjdk version "1.8.0_161-internal" openjdk version "1.8.0_161-
internal"
Hadoop 2.7.2 2.7.2
Hive 1.2.1 1.2.1
2.2 集群部署
2.2.1 节点信息
FusionInsight 集群内节点信息如表 2-3 所示。
表2-3 FusionInsight 集群内节点信息
节点类型 主机名称 管理 IP 地址
(Kunpeng916/X86
)
业务 IP 地址
(Kengpeng916/X86
)
Manager/Controller
节点
Management-1 192.168.2.91/24 192.168.3.91/24
Manager/Controller
节点
Management-2 192.168.2.92/24 192.168.3.92/24
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 2 部署环境
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 6
节点类型 主机名称 管理 IP 地址
(Kunpeng916/X86
)
业务 IP 地址
(Kengpeng916/X86
)
Controller 节点 Controller-1 192.168.2.93/24 192.168.3.93/24
Datanode 节点 DataNode-1 192.168.2.94/24 192.168.3.94/24
Datanode 节点 DataNode-2 192.168.2.95/24 192.168.3.95/24
Datanode 节点 DataNode-3 192.168.2.96/24 192.168.3.96/24
Datanode 节点 DataNode-4 192.168.2.97/24 192.168.3.97/24
Datanode 节点 DataNode-5 192.168.2.98/24 192.168.3.98/24
Datanode 节点 DataNode-6 192.168.2.99/24 192.168.3.99/24
2.2.2 组件部署
FusionInsight 集群内各节点上部署的组件如表 2-4 所示。
表2-4 FusionInsight 集群内各节点上部署的组件
主机名称 ZooKe
eper
YARN HDFS Hive
Managem
ent-1
Quorum
peer
- - - - HiveServe
r
Managem
ent-2
Quorum
peer
ResourceMan
ager
- NameNo
de
- HiveServe
r
Controlle
r-1
Quorum
peer
ResourceMan
ager
- NameNo
de
- -
DataNod
e-1
- - NodeManag
er
- DataNode -
DataNod
e-2
- - NodeManag
er
- DataNode -
DataNod
e-3
- - NodeManag
er
- DataNode -
DataNod
e-4
- - NodeManag
er
- DataNode -
DataNod
e-5
- - NodeManag
er
- DataNode -
DataNod
e-6
- - NodeManag
er
- DataNode -
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 2 部署环境
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 7
2.2.3 集群检查
FusionInsight 集群部署完成后,可以通过 FusionInsight Manager 管理界面以及后台操作
来判断服务是否正常。
通过 FusionInsight Manager 管理界面查看如下图所示,服务的“健康状态”都为
“良好”。
下载集群客户端,在客户端使用 beeline 命令能够进入到 hive 客户端,查看服务状
态。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 8
3 Hive 测试内容
3.1 测试方法
3.2 测试用例
3.3 衡量指标
3.1 测试方法
3.1.1 测试工具
TPC-DS 是一个面向决策支持系统(decision support system)的包含多维度常规应用模
型的决策支持基准,包括查询与数据维护。此基准对被测系统 SUT(System Under
Test's)在决策支持系统层面上的表现进行的评估具有代表性。
此基准体现决策支持系统以下特性:
测试大规模数据
对实际商业问题进行解答
执行需求多样或复杂的查询(如临时查询,报告,迭代 OLAP,数据挖掘)
以高 CPU 和 IO 负载为特征
通过数据库维护对 OLTP 数据库资源进行周期同步
解决大数据问题,如关系型数据库(RDBMS),或基于 Hadoop/Spark 的系统
基准结果用来测量,较为复杂的多用户决策中,单一用户模型下的查询响应时间,多
用户模型下的查询吞吐量,以及数据维护表现。
TPC-DS 采用星型、雪花型等多维数据模式。它包含 7 张事实表,17 张纬度表平均每
张表含有 18 列。其工作负载包含 99 个 SQL 查询,覆盖 SQL99 和 2003 的核心部分以
及 OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复
杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说 TPC-DS 是与真实
场景非常接近的一个测试集,也是难度较大的一个测试集。
TPC-DS 的这个特点跟大数据的分析挖掘应用非常类似。Hadoop 等大数据分析技术也
是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 9
类应用,同时大数据的数据质量也较低,数据分布是真实而不均匀的。因此 TPC-DS
成为客观衡量多个不同 Hadoop 版本以及 SQL on Hadoop 技术的最佳测试集。
3.1.2 测试数据
采用 TPC-DS 工具生成 ORC 格式的数据,数据规模为 10240GB,并使用 TPC-DS 提供
的 SQL 命令进行测试。总共会生成 24 张表的数据,其中 7 张表为事实表,17 张表为
维度表,每张表信息如表 3-1 所示。
表3-1 TPC-DS 工具测试数据
表类
型
表名称 说明 行数
事实
表
catalog_sales 通过 catalog 渠道销售产品的订
单信息
14745571502
catalog_returns 通过 catalog 渠道销售商品的退
货信息
1474596824
web_sales 通过 web 渠道销售商品的订单
信息
7372778706
web_returns 通过 web 渠道销售商品的退货
信息
737298498
store_sales 通过 store 渠道销售商品的订单
信息
29491723228
store_returns 通过 store 渠道销售商品的退货
信息
2948516728
inventory 仓储相关信息 11745000
维度
表
call_center 客户服务中心相关信息 6
catalog_page 商品目录相关信息 11718
customer 客户相关信息 280000
customer_address 客户地址信息 140000
customer_demographi
cs 客户基本信用情况 1920800
date_dim 时间(日历)维度信息 73049
household_demograph
ics 家庭基本信用情况 7200
income_band 收入信息 20
item 商品信息 18000
promotion 商品促销信息 303
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 10
表类
型
表名称 说明 行数
reason 商品退货原因 35
ship_mode 商品快递信息 20
store 商户信息 14
time_dim 时间维度信息 86400
warehouse 仓库基本信息 5
web_page 商品网页基本信息 66
web_site 商品网站基本信息 30
3.1.3 测试步骤
操作步骤
步骤 1 安装 FusionInsight 客户端。
步骤 2 使用 TPC-DS 工具生成测试数据(10240GB),具体生成过程如下:
1. 建立数据仓库 tpcds_text_hive_10240(beeline),表的存储格式为 text。
2. 建立数据仓库 tpcds_orc_hive_10240(beeline),表的存储格式为 orc。
3. 通过 Insert 语句将 tpcds_text_hive_10240 中的数据导入到 tpcds_orc_hive_10240
中。
步骤 3 使用 spark-sql 执行测试语句,获取查询时间。
----结束
脚本使用方法
以上操作步骤已有自动化脚本。脚本使用方法如下:
步骤 1 请从鲲鹏生态社区获取测试工具 tar 包。
步骤 2 解压测试工具 tar 包。
tar -xf TPCDS-ARM.tar.gz
步骤 3 修改目录权限。
chmod –R 777 TPCDS-ARM
步骤 4 执行数据生成脚本(修改脚本中的集群用户名)
nohup ./tpcds-setup-hive.sh 10240 orc /opt/client Huawei12#$ &
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 11
参数说明如下:
10240 代表数据规模。
orc 代表生成的数据格式。
/opt/client 代表 FusionInsight 客户端安装目录。
Huawei12#$代表当前执行用户的密码。
步骤 5 进入测试脚本所在目录。
cd /opt/Tools/Hive-Test-Tool/script
步骤 6 执行测试脚本。
nohup ./ run_all_testcases.sh <HIVE_DB_NAME> <CLIENT_PATH> <USER> <PWD> &
例如 nohup ./run_all_testcases.sh tpcds_orc_hive_10240 /opt/client superadmin
Huawei12#$ &
步骤 7 等待测试完成后在对应的 report 文件中查看结果。
cat query_tpcds_orc_hive_10240.report
----结束
3.2 测试用例
3.2.1 IO 密集型测试
验收目的 Query1 IO 密集型任务操作
预置条件 1. 集群中已安装 Hive 组件,并且运行正常无告警。
2. 集群全量客户端已下载,假设安装目录为“/opt/client/”。
3. 确保生成 TPC-DS 数据表,包括 7 张事实表和 17 张维度表,数据规
模为 10TB。
4. 在 SQL 引擎中创建外表和执行表,导入数据。
测试过程 1. 执行 Linux 清理缓存操作。
2. 配置调优参数执行 SQL1 语句。
3. 执行完毕,检查结果是否正确。
4. 记录执行时长。
预期结果 执行过程未报错。
测试结果 通过
备注 Query1:
select i_item_id
,i_item_desc
,i_current_price
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 12
from item, inventory, date_dim, store_sales
where i_current_price between 76 and 76+30
and inv_item_sk = i_item_sk
and d_date_sk=inv_date_sk
and d_date between cast('1998-06-29' as date) and cast('1998-08-29' as date)
and i_manufact_id in (512,409,677,16)
and inv_quantity_on_hand between 100 and 500
and ss_item_sk = i_item_sk
group by i_item_id,i_item_desc,i_current_price
order by i_item_id
limit 100;
3.2.2 CPU 密集型测试
验收目的 Query2 CPU 密集型任务操作
预置条件 1. 集群中已安装 Hive 组件,并且运行正常无告警。
2. 集群全量客户端已下载,假设安装目录为“/opt/client/”。
3. 确保生成 TPC-DS 数据表,包括 7 张事实表和 17 张维度表,数据规
模为 10TB。
4. 在 SQL 引擎中创建外表和执行表,导入数据。
测试过程 1. 执行 Linux 清理缓存操作。
2. 配置调优参数执行 SQL2 语句。
3. 执行完毕,检查结果是否正确。
4. 记录执行时长。
预期结果 执行过程未报错。
测试结果 通过
备注 Query2:
with v1 as (
select i_category, i_brand,
s_store_name, s_company_name,
d_year, d_moy,
sum(ss_sales_price) sum_sales,
avg(sum(ss_sales_price)) over
(partition by i_category, i_brand,
s_store_name, s_company_name, d_year)
avg_monthly_sales,
rank() over
(partition by i_category, i_brand,
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 13
s_store_name, s_company_name
order by d_year, d_moy) rn
from item, store_sales, date_dim, store
where ss_item_sk = i_item_sk and
ss_sold_date_sk = d_date_sk and
ss_store_sk = s_store_sk and
(
d_year = 2000 or
( d_year = 2000-1 and d_moy =12) or
( d_year = 2000+1 and d_moy =1)
)
group by i_category, i_brand,
s_store_name, s_company_name,
d_year, d_moy),
v2 as(
select v1.i_category, v1.i_brand
,v1.d_year
,v1.avg_monthly_sales
,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum
from v1, v1 v1_lag, v1 v1_lead
where v1.i_category = v1_lag.i_category and
v1.i_category = v1_lead.i_category and
v1.i_brand = v1_lag.i_brand and
v1.i_brand = v1_lead.i_brand and
v1.s_store_name = v1_lag.s_store_name and
v1.s_store_name = v1_lead.s_store_name and
v1.s_company_name = v1_lag.s_company_name and
v1.s_company_name = v1_lead.s_company_name and
v1.rn = v1_lag.rn + 1 and
v1.rn = v1_lead.rn - 1)
select *
from v2
where d_year = 2000 and
avg_monthly_sales > 0 and
case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) /
avg_monthly_sales else null end > 0.1
order by sum_sales - avg_monthly_sales, d_year
limit 100;
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 14
3.2.3 均衡型 SQL 测试
验收目的 Query7 均衡型 SQL 测试
预置条件 1. 集群中已安装 Hive 组件,并且运行正常无告警。
2. 集群全量客户端已下载,假设安装目录为“/opt/client/”。
3. 确保生成 TPC-DS 数据表,包括 7 张事实表和 17 张维度表,数据规
模为 10TB。
4. 在 SQL 引擎中创建外表和执行表,导入数据。
测试过程 1. 执行 Linux 清理缓存操作。
2. 配置调优参数执行 SQL7 语句。
3. 执行完毕,检查结果是否正确。
4. 记录执行时长。
预期结果 执行过程未报错。
测试结果 通过
备注 Query7:
select
w_warehouse_name
,sm_type
,cc_name
,sum(case when (cs_ship_date_sk - cs_sold_date_sk <= 30 ) then 1 else 0 end)
as D30_days
,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 30) and
(cs_ship_date_sk - cs_sold_date_sk <= 60) then 1 else 0 end ) as
D31_60_days
,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 60) and
(cs_ship_date_sk - cs_sold_date_sk <= 90) then 1 else 0 end) as
D61_90_days
,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 90) and
(cs_ship_date_sk - cs_sold_date_sk <= 120) then 1 else 0 end) as
D91_120_days
,sum(case when (cs_ship_date_sk - cs_sold_date_sk > 120) then 1 else 0
end) as D120_days
from
catalog_sales
,warehouse
,ship_mode
,call_center
,date_dim
where
d_month_seq between 1202 and 1202 + 11
-- equivalent to 2451605 2451969
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 3 Hive 测试内容
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 15
and cs_ship_date_sk = d_date_sk
and cs_warehouse_sk = w_warehouse_sk
and cs_ship_mode_sk = sm_ship_mode_sk
and cs_call_center_sk = cc_call_center_sk
group by
w_warehouse_name
,sm_type
,cc_name
order by w_warehouse_name
,sm_type
,cc_name
limit 100 ;
3.3 衡量指标
测试用例 用例说明 衡量指标
Query1 IO 密集型 SQL 测试 测试用例执行所需时间
Query2 CPU 密集型 SQL 测试 测试用例执行所需时间
Query7 均衡型 SQL 测试 测试用例执行所需时间
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 16
4 Hive 性能调优
4.1 硬件调优
4.2 操作系统调优
4.3 ZooKeeper 组件优化
4.4 HDFS 组件优化
4.5 Yarn 组件优化
4.6 Beeline 命令行参数
4.1 硬件调优
针对服务器的硬件调优参数如表 4-1 所示。
表4-1 针对服务器的硬件调优参数
硬件类型 默认值 优化值 备注
RAID 读写类
型
RWTC RAWBD 读写策略分别设置为 Read Ahead 和
Always Write Back,iopolicy 设置为
DirectIO。
内存插法 - 平衡插法 DIMM000、010、020、030、100、110、
120、130
4.2 操作系统调优
针对服务器操作系统调优参数如表 4-2 所示。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 17
表4-2 服务器操作系统调优参数
配置项 Kunpeng 916
X86 4114 说明
/sys/kernel/mm/transparen
t_hugepage/enabled
never never 关闭透明大页。
/sys/kernel/mm/transparen
t_hugepage/defrag
never never
irqbalance inactive inactive 关闭 irqbalance,systemctl stop
irqbalance。
vm.swappiness 0 0 关闭 swap 内存的使用。
kernel.sysrq 1 1 Magic System Request,保证大多
数系统无法服务的情况下,可以
通过键盘进行调试。
kernel.kstack_depth_to_pr
int
20 20 控制内核崩溃 word 数量。
kernel.panic_on_oops 1 1 控制内核的行为时遇到错误。
0 表示尝试继续运行。
1 表示延迟几秒钟(输出
klogd 时间记录),然后警
告,如果警告 sysctl 也是非 0
后机器将重新启动。
kernel.panic 5 5 操作系统在监测到内部的致命错
误,并无法安全处理此错误时采
取的动作,表示 5 秒后重启系
统。
kernel.hung_task_timeout
_secs
3600 3600 hung_task 超时时间(以秒为单
位),当一个进程在
TASK_UNINTERRUPTIBLE 状
态超过这个时间后,会发生一个
hung_task。
Linux 会设置 40%的可用内存用
来做系统 cache,当 flush 数据时
这 40%内存中的数据由于和 IO
同步问题导致超时。
kernel.hung_task_panic 1 1 设置 hung_task 发生后是否引发
panic。
1 表示触发。
0 表示不触发。
vm.oom_dump_tasks 1 1 表示是否在发送 oom killer 时,
打印 task 的相关信息。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 18
配置项 Kunpeng 916
X86 4114 说明
kernel.softlockup_panic 1 1 设置产生 softlockup 时是否抛出
一个 panic。Softlockup 用于检测
CPU 可以响应中断,但是在长时
间内不能调度(比如禁止抢占时
间太长)的死锁情况。这个机制
运行在一个 hrtimer 的中断上下
文,每隔一段时间检测一下是否
发生了调度,如果过长时间没发
生调度,说明系统被死锁。
0 表示不产生 panic。
1 表示产生 panic。
fs.file-max 640000 640000 参数表示系统(所有)可以同时
打开的最大句柄数,这个参数直
接限制最大并发连接数,需根据
实际情况配置。
net.ipv4.tcp_max_syn_ba
cklog
8192 8192 这个参数表示 TCP 三次握手建
立阶段接收 SYN 请求队列的最
大长度,默认为 1024。
net.core.somaxconn 1024 1024 定义了系统中每一个端口最大的
监听队列的长度,这是个全局的
参数。
kernel.msgmnb 7000000 7000000 该文件指定在一个消息队列中最
大的字节数,缺省设置为
16384。
vm.dirty_ratio 40 40 脏页所占的百分比(相对于所有
可用内存,即空闲内存页+可回
收内存页)达到 dirty_ratio 时,
write 调用会唤醒内核的 flusher
线程开始回写脏页数据,直到脏
页比例低于此值,注意 write 调
用此时会阻塞。
kernel.sched_min_granula
rity_ns
10000000 10000000 表示一个进程在 CPU 上运行的
最小时间,在此时间内,内核是
不会主动挑选其他进程进行调
度。
kernel.sched_wakeup_gra
nularity_ns
15000000 15000000 该变量表示进程被唤醒后至少应
该运行的时间的基数,它只是用
来判断某个进程是否应该抢占当
前进程,并不代表它能够执行的
最小时间
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 19
配置项 Kunpeng 916
X86 4114 说明
(sysctl_sched_min_granularity)
,如果这个数值越小,那么发生
抢占的概率也就越高。
vm.max_map_count 1048576 1048576 定义了一个进程能拥有的最多的
内存区域。
kernel.sem 250
6400000
1600
25600
250
6400000
1600
25600
定义了 TCP 发送缓存的最小
值、默认值、最大值。
net.ipv4.tcp_keepalive_ti
me
30 30 表示当 keepalive 启用时,TCP
发送 keepalive 消息的频度。
net.ipv4.tcp_keepalive_pr
obes
3 3 表示丢弃 TCP 连接前,进行最
大 TCP 保持连接侦测的次数。
保持连接仅在 SO_KEEPALIVE
套接字选项被打开时才被发送。
net.ipv4.tcp_keepalive_int
vl
5 5 表示发送 TCP 探测的频率,乘
以 tcp_keepalive_probes 表示断开
没有相应的 TCP 连接的时间。
net.ipv4.tcp_retries2 7 7 表示放弃在已经建立通讯状态下
的一个 TCP 数据包前进行重传
的次数。
vm.panic_on_oom 0 0 当发送 out of memory 时,该值
允许或者禁止内核 panic。(默
认为 0)
0 表示发生 oom 时,内核会
选择性的关闭一些进程,然
后尝试着去恢复。
1 表示发送 oom 时,内核直
接 panic。(如果一个进程使
用 mempolicy、cpusets 来现
在内存在一个 nodes 中消耗,
则不会发生 panic)
2 表示发送 oom 时,内核无
条件直接 panic。
net.ipv4.tcp_syn_retries 3 3 表示本机向外发起 TCP SYN 连
接超时重传的次数,不应该高于
255。该值仅仅针对外出的连
接,对于进来的连接由
tcp_retries1 控制。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 20
4.3 ZooKeeper 组件优化
参数 相关
组件
Kunpeng 916 X86 4114 参数含
义
ZooKee
per-
>quoru
mpeer
GC_OP
TS
zooke
eper
-Xms2G -Xmx2G -
XX:NewSize=128M -
XX:MaxNewSize=256M -
XX:MetaspaceSize=128M
-
XX:MaxMetaspaceSize=12
8M -
XX:CMSFullGCsBeforeCo
mpaction=1 -
XX:MaxDirectMemorySiz
e=256M -
XX:+UseConcMarkSweep
GC -
XX:+CMSParallelRemark
Enabled -
XX:+UseCMSCompactAtF
ullCollection -
XX:CMSInitiatingOccupan
cyFraction=65 -
XX:+PrintGCDetails -
XX:+PrintGCDateStamps -
Dsun.rmi.dgc.client.gcInter
val=0x7FFFFFFFFFFFFFE
-
Dsun.rmi.dgc.server.gcInte
rval=0x7FFFFFFFFFFFFF
E -XX:-
OmitStackTraceInFastThro
w -
XX:+UseGCLogFileRotati
on -
XX:NumberOfGCLogFiles
=10 -
XX:GCLogFileSize=1M
-Xms2G -Xmx2G -
XX:NewSize=128M -
XX:MaxNewSize=256M -
XX:MetaspaceSize=128M -
XX:MaxMetaspaceSize=128
M -
XX:CMSFullGCsBeforeCo
mpaction=1 -
XX:MaxDirectMemorySize=
256M -
XX:+UseConcMarkSweepG
C -
XX:+CMSParallelRemarkEn
abled -
XX:+UseCMSCompactAtFu
llCollection -
XX:CMSInitiatingOccupanc
yFraction=65 -
XX:+PrintGCDetails -
XX:+PrintGCDateStamps -
Dsun.rmi.dgc.client.gcInterv
al=0x7FFFFFFFFFFFFFE -
Dsun.rmi.dgc.server.gcInterv
al=0x7FFFFFFFFFFFFFE -
XX:-
OmitStackTraceInFastThrow
-
XX:+UseGCLogFileRotatio
n -
XX:NumberOfGCLogFiles=
10 -XX:GCLogFileSize=1M
根据目
前使用
的数
据,调
大ZooKee
per JVM
使用的
资源
量。
4.4 HDFS 组件优化
参数 默认
值
Kunpeng 916 X86 4114 参数说明
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 21
参数 默认
值
Kunpeng 916 X86 4114 参数说明
dfs.namenod
e.handler.co
unt
128 64 64 设置 namenode 能够同时处理
的请求数, handler 数等于
MAX(64, ln(datanode 节点
数)*20)。
dfs.namenod
e.service.ha
ndler.count
10 36 36 设置 namenode 能够同时处理
的服务端的请求数, handler
数等于 MAX(30, ln(datanode
节点数)*20)。
dfs.namenod
e.audit.log.d
ebug.cmdlist
open,
getfil
einfo,
listSt
atus,g
etAcl
Status
listStatus,getfile
info,open,getAc
lStatus,isFileCl
osed,contentSu
mmary
listStatus,getf
ileinfo,open,g
etAclStatus,is
FileClosed,co
ntentSummar
y
可以配置以逗号隔开的命令
如listStatus,getfileinfo,open,getA
clStatus,这些操作记录不会在
审计日志中输出,提高
NameNode 性能。
dfs.datanode
.handler.cou
nt
32 8 8 设置 datanode 能够同时处理
的请求数,当小于 100 节点
的集群设置 8,当节点数大
于 100 时,每增加 100 个节
点,handle 数增加 1。
dfs.datanode
.max.transfe
r.threads
8192 4096 4096 datanode 用于传输数据的最
大线程数,
默认 4096,对于高并发场景
调整为 8192。
dfs.namenod
e.replication
.max-
streams
64 20 20 对 DataNode 上复制线程数的
限制,在退服的时候,由于
namenode 的处理,调度的优
先级比写入业务流程的优先
级低,因此在退服的速度也
会极大的受当前业务的影
响,优化该参数,在业务量
较低的时候提升退服的性
能,增加该值可以提升退服
的速度, 但是不能超过dfs.namenode.replication.max-
streams-hard-limit。
HDFS-
>NameNode
GC_OPTS
HDF
S
-Xms6G -
Xmx6G -
XX:NewSize=5
12M -
XX:MaxNewSi
ze=512M -
XX:MetaspaceS
-Xms6G -
Xmx6G -
XX:NewSize
=512M -
XX:MaxNew
Size=512M -
XX:Metaspac
根据目前使用的数据,调大
HDFS JVM 使用的资源量。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 22
参数 默认
值
Kunpeng 916 X86 4114 参数说明
ize=128M -
XX:MaxMetasp
aceSize=128M -
XX:CMSFullG
CsBeforeComp
action=1 -
XX:MaxDirect
MemorySize=1
G -
XX:+UseConc
MarkSweepGC
-
XX:+CMSParal
lelRemarkEnabl
ed -
XX:+UseCMSC
ompactAtFullC
ollection -
XX:CMSInitiati
ngOccupancyFr
action=65 -
XX:+PrintGCD
etails -
Dsun.rmi.dgc.cl
ient.gcInterval=
0x7FFFFFFFFF
FFFFE -
Dsun.rmi.dgc.se
rver.gcInterval=
0x7FFFFFFFFF
FFFFE -XX:-
OmitStackTrace
InFastThrow -
XX:+PrintGCD
ateStamps -
XX:+UseGCLo
gFileRotation -
XX:NumberOf
GCLogFiles=10
-
XX:GCLogFile
Size=1M -
Djdk.tls.epheme
ralDHKeySize=
2048
eSize=128M -
XX:MaxMeta
spaceSize=12
8M -
XX:CMSFull
GCsBeforeCo
mpaction=1 -
XX:MaxDire
ctMemorySiz
e=1G -
XX:+UseCon
cMarkSweep
GC -
XX:+CMSPa
rallelRemark
Enabled -
XX:+UseCM
SCompactAtF
ullCollection
-
XX:CMSIniti
atingOccupan
cyFraction=6
5 -
XX:+PrintGC
Details -
Dsun.rmi.dgc.
client.gcInter
val=0x7FFFF
FFFFFFFFFE
-
Dsun.rmi.dgc.
server.gcInter
val=0x7FFFF
FFFFFFFFFE
-XX:-
OmitStackTra
ceInFastThro
w -
XX:+PrintGC
DateStamps -
XX:+UseGC
LogFileRotati
on -
XX:NumberO
fGCLogFiles
=10 -
XX:GCLogFi
leSize=1M -
Djdk.tls.ephe
meralDHKey
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 23
参数 默认
值
Kunpeng 916 X86 4114 参数说明
Size=2048
HDFS-
>DataNode
GC_OPTS
HDF
S
-Xms6G -
Xmx6G -
XX:NewSize=5
12M -
XX:MaxNewSi
ze=512M -
XX:MetaspaceS
ize=128M -
XX:MaxMetasp
aceSize=128M -
XX:CMSFullG
CsBeforeComp
action=1 -
XX:MaxDirect
MemorySize=1
G -
XX:+UseConc
MarkSweepGC
-
XX:+CMSParal
lelRemarkEnabl
ed -
XX:+UseCMSC
ompactAtFullC
ollection -
XX:CMSInitiati
ngOccupancyFr
action=65 -
XX:+PrintGCD
etails -
Dsun.rmi.dgc.cl
ient.gcInterval=
0x7FFFFFFFFF
FFFFE -
Dsun.rmi.dgc.se
rver.gcInterval=
0x7FFFFFFFFF
FFFFE -XX:-
OmitStackTrace
InFastThrow -
XX:+PrintGCD
ateStamps -
XX:+UseGCLo
gFileRotation -
XX:NumberOf
GCLogFiles=10
-
XX:GCLogFile
Size=1M -
Djdk.tls.epheme
-Xms6G -
Xmx6G -
XX:NewSize
=512M -
XX:MaxNew
Size=512M -
XX:Metaspac
eSize=128M -
XX:MaxMeta
spaceSize=12
8M -
XX:CMSFull
GCsBeforeCo
mpaction=1 -
XX:MaxDire
ctMemorySiz
e=1G -
XX:+UseCon
cMarkSweep
GC -
XX:+CMSPa
rallelRemark
Enabled -
XX:+UseCM
SCompactAtF
ullCollection
-
XX:CMSIniti
atingOccupan
cyFraction=6
5 -
XX:+PrintGC
Details -
Dsun.rmi.dgc.
client.gcInter
val=0x7FFFF
FFFFFFFFFE
-
Dsun.rmi.dgc.
server.gcInter
val=0x7FFFF
FFFFFFFFFE
-XX:-
OmitStackTra
ceInFastThro
w -
XX:+PrintGC
DateStamps -
XX:+UseGC
LogFileRotati
根据目前使用的数据,调大
HDFS JVM 使用的资源量。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 24
参数 默认
值
Kunpeng 916 X86 4114 参数说明
ralDHKeySize=
2048
on -
XX:NumberO
fGCLogFiles
=10 -
XX:GCLogFi
leSize=1M -
Djdk.tls.ephe
meralDHKey
Size=2048
4.5 Yarn 组件优化
参数 默认
值
Kunpeng 916
X86 4114 参数说明
ipc.server.re
ad.threadpoo
l.size
5 1 1 RPC 服务读取 socket 的线程
数,根据集群的规模适当增加该
值可以提高 RPC 线程收包的效
率。计算方法:Math.min(Math.round(Math.max(
1, Math.log(nodeManagerCount /
40))), 4)
RES_CPUS
ET_PERCE
NTAGE
90 100 100 可使用的 CPU 核数比例。
yarn.nodema
nager.resour
ce.cpu-
vcores
(NodeMana
ger)
64 64 40 建议将此配置设定在物理核
*(1.5~2)*yarn.nodemanager.resource.per
centage-physical-cpu-limit。
如果上层应用是计算型应
用,建议取值 1.5。
如果上层计算应用对 CPU 的
计算能力要求不高,中间括
号可以取值为 2 倍的逻辑
CPU。
mapreduce.r
educe.memo
ry.mb
4096 3072 3072 Reduce 任务的内存限制,单位
MB。
mapreduce.
map.memor
y.mb
4096 3072 3072 Map 任务的内存限制,单位
MB。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 25
参数 默认
值
Kunpeng 916
X86 4114 参数说明
yarn.nodema
nager.resour
ce.memory-
mb
(NodeMana
ger)
8192 256000 256000 除了分配给操作系统、其他服务
的内存外,剩余的资源应尽量分
配给 YARN。
Yarn-
>ResourceM
anager
GC_OPTS
Yarn -Xms4G -
Xmx4G -
XX:NewSize
=512M -
XX:MaxNew
Size=1G -
XX:Metaspac
eSize=128M
-
XX:MaxMet
aspaceSize=1
28M -
XX:CMSFull
GCsBeforeC
ompaction=1
-
XX:MaxDire
ctMemorySiz
e=128M -
XX:+UseCon
cMarkSweep
GC -
XX:+UseCM
SCompactAt
FullCollectio
n -
XX:CMSIniti
atingOccupan
cyFraction=6
5 -
XX:+PrintG
CDetails -
Dsun.rmi.dgc
.client.gcInter
val=0x7FFFF
FFFFFFFFF
E -
Dsun.rmi.dgc
.server.gcInte
rval=0x7FFF
FFFFFFFFFF
E -XX:-
OmitStackTr
aceInFastThr
-Xms4G -
Xmx4G -
XX:NewSiz
e=512M -
XX:MaxNe
wSize=1G -
XX:Metaspa
ceSize=128
M -
XX:MaxMet
aspaceSize=
128M -
XX:CMSFul
lGCsBefore
Compaction
=1 -
XX:MaxDir
ectMemoryS
ize=128M -
XX:+UseCo
ncMarkSwee
pGC -
XX:+UseC
MSCompact
AtFullCollec
tion -
XX:CMSInit
iatingOccup
ancyFraction
=65 -
XX:+PrintG
CDetails -
Dsun.rmi.dg
c.client.gcInt
erval=0x7FF
FFFFFFFFF
FFE -
Dsun.rmi.dg
c.server.gcIn
terval=0x7F
FFFFFFFFF
FFFE -XX:-
OmitStackTr
aceInFastThr
根据目前使用的数据,调大
Yarn JVM 使用的资源量。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 26
参数 默认
值
Kunpeng 916
X86 4114 参数说明
ow -
XX:+PrintG
CDateStamps
-
XX:+UseGC
LogFileRotat
ion -
XX:Number
OfGCLogFil
es=10 -
XX:GCLogFi
leSize=1M -
Djdk.tls.ephe
meralDHKey
Size=2048
ow -
XX:+PrintG
CDateStamp
s -
XX:+UseGC
LogFileRota
tion -
XX:Number
OfGCLogFil
es=10 -
XX:GCLogF
ileSize=1M -
Djdk.tls.eph
emeralDHK
eySize=2048
Yarn-
>NodeMana
ger
GC_OPTS
Yarn -Xms4G -
Xmx4G -
XX:NewSize
=512M -
XX:MaxNew
Size=1G -
XX:Metaspac
eSize=128M
-
XX:MaxMet
aspaceSize=1
28M -
XX:CMSFull
GCsBeforeC
ompaction=1
-
XX:MaxDire
ctMemorySiz
e=2G -
XX:+UseCon
cMarkSweep
GC -
XX:+UseCM
SCompactAt
FullCollectio
n -
XX:CMSIniti
atingOccupan
cyFraction=6
5 -
XX:+PrintG
CDetails -
Dsun.rmi.dgc
.client.gcInter
val=0x7FFFF
FFFFFFFFF
-Xms4G -
Xmx4G -
XX:NewSiz
e=512M -
XX:MaxNe
wSize=1G -
XX:Metaspa
ceSize=128
M -
XX:MaxMet
aspaceSize=
128M -
XX:CMSFul
lGCsBefore
Compaction
=1 -
XX:MaxDir
ectMemoryS
ize=2G -
XX:+UseCo
ncMarkSwee
pGC -
XX:+UseC
MSCompact
AtFullCollec
tion -
XX:CMSInit
iatingOccup
ancyFraction
=65 -
XX:+PrintG
CDetails -
Dsun.rmi.dg
c.client.gcInt
erval=0x7FF
FFFFFFFFF
根据目前使用的数据,调大
Yarn JVM 使用的资源量。
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 27
参数 默认
值
Kunpeng 916
X86 4114 参数说明
E -
Dsun.rmi.dgc
.server.gcInte
rval=0x7FFF
FFFFFFFFFF
E -XX:-
OmitStackTr
aceInFastThr
ow -
XX:+PrintG
CDateStamps
-
XX:+UseGC
LogFileRotat
ion -
XX:Number
OfGCLogFil
es=10 -
XX:GCLogFi
leSize=1M -
Djdk.tls.ephe
meralDHKey
Size=2048
FFE -
Dsun.rmi.dg
c.server.gcIn
terval=0x7F
FFFFFFFFF
FFFE -XX:-
OmitStackTr
aceInFastThr
ow -
XX:+PrintG
CDateStamp
s -
XX:+UseGC
LogFileRota
tion -
XX:Number
OfGCLogFil
es=10 -
XX:GCLogF
ileSize=1M -
Djdk.tls.eph
emeralDHK
eySize=2048
4.6 Beeline 命令行参数
在测试过程中可以通过命令行传入参数。
参数 默认值 Kunpeng 916 X86 4114 参数说明
mapred.job.reuse.jv
m.num.tasks
1 10 10 JVM 重用
mapred.compress.m
ap.output
FALSE TRUE TRUE 对中间数据是
否压缩
mapreduce.map.out
put.compress.codec
default org.apache.hadoop.
io.compress.Snapp
yCodec
org.apache.hado
op.io.compress.
SnappyCodec
采用的数据压
缩方式
hive.vectorized.exec
ution.enabled
FALSE TRUE TRUE 开启矢量查询
hive.vectorized.exec
ution.reduce.enable
d
FALSE TRUE TRUE 开启矢量查询
hive.optimize.skewj FALSE TRUE TRUE 数据倾斜优化
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调
优指导 4 Hive 性能调优
文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 28
参数 默认值 Kunpeng 916 X86 4114 参数说明
oin
hive.optimize.skewj
oin.compiletime
FALSE TRUE TRUE 数据倾斜优化
hive.exec.parallel FALSE TRUE TRUE 并行执行
mapred.reduce.tasks 1 39 63 Reduce 的任务
数
mapred.reduce.slow
start.completed.map
s
1 0.8 0.8 当 Map 任务数
量完成率在
5%时,Reduce
任务启动