Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive...

33
Kunpeng 916 FusionInsight HD C80 Hive 组件性能调优指导 Kunpeng 916 FusionInsight HD C80 Hive 组件性能调优指导 文档版本 01 发布日期 2019-06-28 华为技术有限公司

Transcript of Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive...

Page 1: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

Kunpeng 916 FusionInsight HD C80 Hive 组件性能调优指导

Kunpeng 916 FusionInsight HD C80

Hive 组件性能调优指导

文档版本 01

发布日期 2019-06-28

华为技术有限公司

Page 2: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 i

版权所有 © 华为技术有限公司 2019。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传

播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务

或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示

的声明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本

文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司

地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址: http://e.huawei.com

Page 3: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

Kunpeng 916 FusionInsight HD C80 Hive 组件性能调

优指导

Kunpeng 916 FusionInsight HD C80 Hive 组件性能调

优指导 前言

文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 ii

前言

概述

本文档详细的描述了基于 FusionInsight HD V100R002C80 集群环境,如何对 Hive 组件

进行测试和性能调优的过程。

读者对象

本文档主要适用于以下人员:

大数据测试工程师

符号约定

在本文中可能出现下列标志,它们所代表的含义如下。

符号 说明

用于警示紧急的危险情形,若不避免,将会导致人员死亡或严重

的人身伤害。

用于警示潜在的危险情形,若不避免,可能会导致人员死亡或严

重的人身伤害。

用于警示潜在的危险情形,若不避免,可能会导致中度或轻微的

人身伤害。

用于传递设备或环境安全警示信息,若不避免,可能会导致设备

损坏、数据丢失、设备性能降低或其它不可预知的结果。

“注意”不涉及人身伤害。

用于突出重要/关键信息、最佳实践和小窍门等。

“说明”不是安全警示信息,不涉及人身、设备及环境伤害。

Page 4: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

Kunpeng 916 FusionInsight HD C80 Hive 组件性能调

优指导

Kunpeng 916 FusionInsight HD C80 Hive 组件性能调

优指导 前言

文档版本 01 (2019-06-28) 版权所有 © 华为技术有限公司 iii

修改记录

文档版本 发布日期 修改说明

01 2019-06-30 第一次正式发布。

Page 5: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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

Page 6: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 操作,从而完成数据的提取、转换、分析。

Page 7: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 任务,

从而完成对海量数据的处理。

Page 8: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 节点。

Page 9: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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

Page 10: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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

Page 11: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 -

Page 12: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 客户端,查看服务状

态。

Page 13: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 等大数据分析技术也

是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表

Page 14: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在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

Page 15: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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#$ &

Page 16: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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

Page 17: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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,

Page 18: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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;

Page 19: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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

Page 20: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 测试 测试用例执行所需时间

Page 21: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 所示。

Page 22: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 的相关信息。

Page 23: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 该变量表示进程被唤醒后至少应

该运行的时间的基数,它只是用

来判断某个进程是否应该抢占当

前进程,并不代表它能够执行的

最小时间

Page 24: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 控制。

Page 25: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 参数说明

Page 26: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 使用的资源量。

Page 27: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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

Page 28: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 使用的资源量。

Page 29: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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。

Page 30: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 使用的资源量。

Page 31: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 使用的资源量。

Page 32: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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 数据倾斜优化

Page 33: Kunpeng 916 FusionInsight HD C80 Hive组件性能调优指导... · Hive 简介 Hive 是建立在Hadoop 上的数据仓库框架,提供大数据平台批处理计算能力,能够对

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

任务启动