Hive内核调优(二)

这篇具有很好参考价值的文章主要介绍了Hive内核调优(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hive内核调优(二)

1.3 Hive 日志说明

SQL调优过程中需要结合Hive日志分析性能瓶颈,如下是对关键日志进行说明。

1.3.1 运行日志

运行态日志主要包括HiveServer日志、MetaStore日志、Yarn日志。
HiveServer 日志:HiveServer 负责接收客户端请求(SQL 语句),然后编译、执行(提交到 YARN 或运行 local MR)、与 MetaStore 交互获取元数据信息等。HiveServer 运行日志记录了一个 SQL 完整的执行过程。通常情况下,当我们遇到 SQL 语句运行失败,我们首先要看的就是 HiveServer 运行日志。
日志文件路径:/var/log/Bigdata/hive/hiveserver/hive.log
MetaStore日志:通常情况下,当我们遇到查看HiveServer运行日志时,如遇到MetaException或者连接MetaStore失败,我们就需要去看MetaStore运行日志了。
MetaStore运行日志主要可以帮助分析一些任务慢的问题。比如get_database、get_table、get_role_grants_for_principal等操作,可以根据HiveQL中操作的表名及大致的操作时间点,获取到对应的MetaStore线程号,类似这样:pool-8-thread-652909,有线程号可以看到每次元数据操作的耗时,如果耗时过长,可能导致任务变慢。
日志文件路径:/var/log/Bigdata/hive/metastore/metastore.log

1.3.2 审计日志

首先,对于审计日志来说,记录了某个时间点某个用户从哪个IP发起对HiveServer或者MetaStore的请求以及记录执行的语句是什么。
如下的HiveServer审计日志,表示在2021-02-01 14:51:22 用户user_chen向HiveServer发起了show tables请求,客户端IP为192.168.1.18。
如下面MetaStore审计日志,表示在2021-01-29 11:31:15 用户hive向MetaStore发起
shutdown请求,客户端ip为192.168.1.18。
通常情况下,审计日志对我们定位实际错误信息并无太大帮助。但在遇到诸如下述类
问题时,需要查看审计日志:

  1. 如客户端发起请求,但是迟迟未得到响应。由于不确定到底是任务是卡在客户端还是服务端,可以通过审计日志查看。如果审计日志根本没有相关信息,那么说明卡死在客户端;如审计日志有相关打印,那么就需要去运行日志里看到底程序卡在哪一步了。
  2. 查看指定时间段的任务请求个数。可通过审计日志查看在指定时间段到底有多少个请求。
    日志文件路径:/var/log/Bigdata/audit/hive/hiveserver/hive-audit.log/var/log/Bigdata/audit/hive/metastore/metastore-audit.log

1.3.3 GC 日志

HiveServer和MetaStore均有GC日志,当我们遇到GC问题可以查看GC日志以快速定位是否是GC导致。如,当遇到HiveServer或MetaStore频繁重启就需要去看下对应的GC日志,在GC日志中搜索“Full GC”可以看到Full GC的频率情况。
日志文件路径:/var/log/Bigdata/hive/hiveserver/hive-omm-20220622101230-pid3740291-gc.log.0.current/var/log/Bigdata/hive/metastore/hive-omm-20220622101212-pid3732558-gc.log.0.current

1.3.4 LocalTask 日志

如果报错是MapRedLocalTask失败,查看localtask日志,一般是MapJoin过程中,Local Task内存设置过小,set hive.mapred.local.mem=4096,默认1024M。
日志文件路径: /var/log/Bigdata/hive/hiveserver/localtasklog/localtask.log

1.4 Hive 优化器相关

1.4.1 相关性优化开关

【参数值】:hive.optimize.correlation
【参数解析】:是否开启相关性优化。
【如何调优】:默认:false
相关性优化,旨在利用下面两种查询的相关性:
(a)输入相关性:在原始operator树中,同一个输入表被多个MapReduce任务同时使用的场景;
(b)作业流程的相关性:两个有依赖关系的MapReduce的任务的shuffle方式相同。
相关性优化特性可以减少MR任务个数,从而提升整体效率,建议设置为true。

1.4.2 向量化优化开关

【参数值】:
hive.vectorized.execution.enabled
【参数解析】:是否开启向量化优化。
【如何调优】:默认:false
向量化特性可以显著地减少如下几类查询的CPU使用率,如扫描、过滤、聚合和关联,建议设置为true。

1.4.3 基于代价的优化(CBO)开关

【参数值】:hive.cbo.enable
【参数解析】:是否开启基于代价的优化。
【如何调优】:默认:true
基于代价的优化器,可以基于代价(包括FS读写、CPU、IO等)对查询计划进行进一步的优化选择,提升Hive查询的响应速度,建议设置为true。文章来源地址https://www.toymoban.com/news/detail-767995.html

到了这里,关于Hive内核调优(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (15)Hive调优——数据倾斜的解决指南

    目录 前言 一、什么是数据倾斜 二、发生数据倾斜的表现 2.1 MapReduce任务 2.2 Spark任务 三、如何定位发生数据倾斜的代码 四、发生数据倾斜的原因 3.1 key分布不均匀 3.1.1 某些key存在大量相同值 3.1.2 存在大量异常值或空值 3.2 业务数据本身的特性 3.3 SQL语句本身就有数据倾斜

    2024年04月14日
    浏览(44)
  • 大数据开发之Hive(企业级调优)

    创建测试用例 1、建大表、小表和JOIN后表的语句 2、分别向大表和小表中导入数据 1、基本语法 2、实例操作 1)查看下面这条语句的执行计划 (1)没有生成MR任务的 (2)有生成MR任务的 2)查看详细执行计划 10.2.1 列裁剪和分区裁剪 在生产环境中,会面临列很多或者数据量很

    2024年01月18日
    浏览(43)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(43)
  • 基于MapReduce的Hive数据倾斜场景以及调优方案

    通常认为当所有的map task全部完成,并且99%的reduce task完成,只剩下一个或者少数几个reduce task一直在执行,这种情况下一般都是发生了数据倾斜。 即为在整个计算过程中,大量相同的key被分配到了同一个reduce任务上造成。Hive的数据倾斜本质上是MapReduce计算引擎的数据倾斜,

    2024年02月12日
    浏览(52)
  • 【Hive_06】企业调优2(数据倾斜优化、HQL优化等)

    数据倾斜问题,通常是指参与计算的数据分布不均,即某个key或者某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发往同一个Reduce,进而导致该Reduce所需的时间远超其他Reduce,成为整个任务的瓶颈。 比如对于一张表的province_id字段,其中99%的值都为1,则

    2024年01月16日
    浏览(42)
  • Hive数据仓库简介

    Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用者则难度较大。因此Facebook开发团队想设计一种使用SQL语言对日

    2024年02月15日
    浏览(57)
  • hive数据仓库课后答案

    一、 填空题 1.数据仓库的目的是构建面向     分析         的集成化数据环境。 2.Hive是基于     Hadoop         的一个数据仓库工具。 3.数据仓库分为3层,即      源数据层        、     数据应用层        和数据仓库层。 4.数据仓库层可以细分为      明细层

    2023年04月08日
    浏览(47)
  • 数据仓库 & Apache Hive

    目录 一、数据分析 1、数据仓库 1.1、数仓专注分析 1.2、数仓主要特征 1.3、数据仓库主流开发语言--SQL 2、Apache Hive 2.1、为什么使用Hive? 2.2、Hive和Hadoop关系 2.3、Hive架构图、各组件功能 2.4、Hive安装部署 2.4.1、Hive概念介绍 2.4.2、安装前准备     数据仓库 (英语:Data Warehous

    2024年01月22日
    浏览(49)
  • Hive 数据仓库介绍

    目录 ​编辑 一、Hive 概述 1.1 Hive产生的原因 1.2 Hive是什么? 1.3 Hive 特点 1.4 Hive生态链关系 二、Hive架构 2.1 架构图 2.2 架构组件说明 2.2.1 Interface 2.2.1.1 CLI 2.2.1.2 JDBC/ODBC 2.2.1.3 WebUI 2.2.2 MetaData 2.2.3 MetaStore 2.2.4 Hiveserver2 2.2.5 Driver 2.2.5.1 解释器 2.2.5.2 编译器 2.2.5.3 优化器 2.2.5.4 执行

    2024年02月07日
    浏览(42)
  • Hive数据仓库

    数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面相分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。 数据仓库本身并不“产生”任何数据,其数据来源不同外部系统; 同时数据仓库

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包