hive 参数设置大全

合理设置参数,让集群飞起来~

 参数缺省值描述
可单独使用set hive.execution.engine=tez; 设置hive的计算引擎
可单独使用set mapreduce.map.memory.mb=4096; 设置每个map的内存
可单独使用set mapreduce.reduce.memory.mb=4096; 设置每个reduce的内存
可单独使用set mapreduce.map.java.opts=-Xmx13106M; 这个 Java 程序可以使用的最大堆内存数,一定要小于mapreduce.map.memory.mb
可单独使用mapreduce.reduce.java.opts 可以使用的最大堆内存数,一定要小于mapreduce.reduce.memory.mb
可单独使用set hive.cli.print.header=true; 辅助设置-打印表头
可单独使用set hive.cli.print.current.db=true; 辅助设置-显示当前数据库
可单独使用set hive.exec.parallel=true; 开启任务并行执行
可单独使用set hive.exec.parallel.thread.number=8; 同一个sql允许并行任务的最大线程数
联合使用set hive.exec.dynamic.partition=true;FALSE设置成true, 表示开启动态分区功能
set hive.exec.dynamic.partition.mode=nonstrict;strict设置成nonstrict, 表示允许所有分区都是动态的
set hive.exec.max.dynamic.partitions.pernode=1000;100每个mapper或reducer可以创建的最大动态分区个数.如果某个mapper或reducer尝试创建大于这个值的分区的话则会知出一个致命错误
set hive.exec.max.dynamic.partitions=1000;1000一个动态分区创建语句可以创建的虽大动态分区个数,如果超过这个佳则会抛出—个致命错误
hive.exec.max.created.files100000全局可以创建的最大文件个数.有一个Hadoop计数器会跟踪记录创速了多少个文件
可单独使用set mapred.reduce.tasks=100; 设置reduce数量, mapper数量:reduce数量 = 10:1
可单独使用set hive.exec.reducers.bytes.per.reducer=500000000; (500M) 设置每个reduce处理数据量,默认1G
联合使用set mapred.max.split.size=256000000; 每个Map最大输入大小,间接设置map个数,默认256M就比较好。
set mapred.min.split.size=100000000; 每个Map最小输入大小
set mapred.min.split.size.per.node=100000000; 一个节点上split的至少的大小
set mapred.min.split.size.per.rack=100000000; 一个交换机下split的至少的大小

set hive.input.format=

org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

 执行Map前进行小文件合并,前面参数确定合并文件块的大小
可单独使用set hive.merge.mapfiles=true; 在Map-only的任务结束时合并小文件
可单独使用set hive.merge.mapredfiles = true; 在Map-Reduce的任务结束时合并小文件
可单独使用set mapreduce.job.reduce.slowstart.completedmaps=0.90.8reduce任务从map完成80%后开始执行
集群默认0.8,大部分比较小的job都是适合的,对于map比较重的大job,这个值可以适当调大,比如0.9
可单独使用set hive.exec.reducers.bytes.per.reducer=500000000;1000000000每个reduce处理的数据量,间接设置reduce的个数
可单独使用set hive.exec.reducers.max=999; 设置最大reduce的个数
可单独使用set mapred.reduce.tasks=10; 

直接设置reduce的个数,reduce个数并不是越多越好!Order by时只有一个reduce


如果你懒得看上文,推荐一套参数设置
set hive.execution.engine=tez;
set mapreduce.map.memory.mb=8192;
set mapreduce.reduce.memory.mb=8192;
set hive.exec.reducers.max=999;
set hive.exec.reducers.bytes.per.reducer=500000000;


开动态分区时设置
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=1000;
set hive.exec.max.dynamic.partitions=1000;
 

【小编废话】

在日常开发中,还需要结合集群的实际情况,任务的差异性,结合任务日志,针对性的调整参数,两个原则:

原则1:当资源紧张时,重要任务优先(需结合调度时间优化)。

原则2:在保证原则1的前提下,提升整个集群的效率。当时效要求高时,尽量压缩总体运行时间;当稳定性要求更高时,错峰执行,负载均衡。

 

参数调优核心总结为两个字:平衡。

1、时效和稳定性的平衡;

2、资源的平衡,在某一时间点,集群的内存、io、cpu等负载均衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt实用快捷键(较全面)

总结整理的常用快捷键,欢迎留言补充!

Python下载中国数据库大会(DTCC2020)PPT全集

目录 背景 效果展示 程序下载 网盘下载 背景 前几天中国数据库大会风风火火的在京举行了,期间干货满满,收获良多。在学大佬们的ppt时,发现只能一篇一篇预览,对于求知欲强烈的小编来说简直太难受了,于是便写了个程…

Android UI布局—— 仿QQ登录界面

最近,有点空闲的时间就拿QQ登录界面来模仿练手,做了个简单的登录界面。界面一般般吧,不算很漂亮,现在拿出来分享,希望大家一起学习与进步。有什么不足之处,请各位大侠多多赐教,谢谢。这个界面涉…

新造车公司背后的「资本大佬」

来源:电动汽车观察家(ID:evobserver)为了代表行业全貌,我们既分析光鲜靓丽的头部企业,也涉及比较不知名、甚至陷入舆论漩涡的一些企业,共十家代表企业资金的来源分析。1、蔚来汽车过往融资成绩&…

MySQL流浪记(一)—— 初步认识数据库的内涵

认识数据库 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内、有组织、可共享、统一管理的大量数据的集合。可以将数据库视为一个电子化的文件柜,用户可以对文件中的数据进行新增、查询、更新、删除等操作。 数据库是一个按数据结…

一篇文章搞懂数据仓库:元数据分类、元数据管理

目录 1、业务元数据 2、技术元数据 3、管理元数据 4、小编有话 1、业务元数据 描述 ”数据”背后的业务含义 主题定义:每段 ETL、表背后的归属业务主题。 业务描述:每段代码实现的具体业务逻辑。 标准指标:类似于 BI 中的语义层、数仓…

MEMS传感器科普文

来源:MEMS技术MEMS 的全称是微型电子机械系统,利用传统的半导体工艺和材料,集微传感器、微执行器、微机械机构、信号处理和控制电路、高性能电子集成器件、接口、通信和电源等于一体的微型器件或系统。具有小体积、低成本、集成化等特点。MEM…

silverlight 缺少对象错误

如果你的silverlight程序用vs调试时候运行良好,没有错误.你满怀欣喜的发布到iis上,一浏览,跳出个对话框,告诉你缺少对象.那么请不要慌张,你应该检查一下,你发布silverlight程序到iis的时候,有没有设置MIME类型,如果忘了设置,赶紧设置上吧,方法如下: 打开iis管理器,在网站上右键…

NFS服务器原理、搭建、配置

目录 NFS服务简介 什么是NFS? NFS挂载原理: RPC与NFS通讯原理: NFS客户端和NFS服务器通讯过程: Linux下NFS服务器部署 NFS服务所需软件及主要配置文件: 服务端安装NFS服务步骤: NFS客户端挂载配置…

MySQL流浪记(二)—— MySQL介绍及其特性

MySQL介绍 MySQL是一个关系型数据库,是一个开放源码的关系型数据库管理系统,原开发者位瑞典的MySQL AB公司,该公司于2008年被昇阳为系统(Sun)收购,2009年,甲骨文公司(Oracle&#xf…

学习AutoIt

学习AutoIt转载于:https://www.cnblogs.com/bull_think/archive/2012/08/21/2649839.html

2021年03月-程序员薪资分布,看看你拖后腿了吗?

程序员工资是不确定的,要根据程序员的历、能力、工作经验、是否刚毕业、工种,工资是不一样的,还与地域和公司有关,但是总的来说,程序员工资都是很高的,是很多人都羡慕的职位。 那么程序员的薪资到底多高呢…

Science:领导决策的计算和神经生物学基础

来源:思影科技摘要:最近,来自苏黎世大学的Micah G. Edelson等人在SCIENCE上发文,他们将基于知觉和价值决策的模型结合起来,以评估被试对每一个决策行为的个人效用,从而梳理出选择领导或服从的潜在动机。最近…

tar命令集合(详解)

tar 命令可以将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。 示例 以test文件为例 压缩命令 tar -cvf test.tar test test1解压命令 tar -xvf test.tar主操作模式: -A, --catenate, --concatenate 追加 tar 文件至归档 -c, --…

一个薪资double的捷径:自动化简历内推工具

最近,小编在处理简历时,发现大量简历需要一个个打开文件,复制姓名、邮箱、电话号码、学历等关键信息,效率特别低且部分文件无法直接复制。于是,小编便写了文件阅读工具的脚本,支持文件格式有:do…

美国韩国科学家纷纷开发出电子机器人“皮肤”,据称具有比人类更好的触觉...

来源:机器人创新生态摘要:我们已经听说过柔性电子“皮肤”可以让机器人或假肢具有类似人类的触觉。然而,现在德克萨斯大学阿灵顿分校的科学家们声称他们开发的“皮肤”比具有比人类更好的触觉敏感。由Zeynep ?elik-Butler教授领导的团队创建…

解决FileUpload控件上传大文件被拒问题时

在使用Asp.Net自带的服务器端控件Fileupload上传文件时&#xff0c;如果上传的文件比较大&#xff0c;可能会遇到服务器的拒绝服务攻击&#xff0c;此时可以通过在<system.web>中添加&#xff1a; <httpRuntime maxRequestLength"2097151" executionTimeout…

MySQL流浪记(三)—— Linux安装MySQL数据库5.7.30(亲测有效3分钟即可)

下载 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/5.7.html#downloads 解压 tar -xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gztar命令集合&#xff08;详解&#xff09; 将安装包进行移动并重命名&#xff08;需要在root权限下进行&#xff09;。 m…

爬虫神器Requests: 让 HTTP 服务人类

Requests 唯一的一个非转基因的 Python HTTP 库&#xff0c;人类可以安全享用。 警告&#xff1a;非专业使用其他 HTTP 库会导致危险的副作用&#xff0c;包括&#xff1a;安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。 loook&#xff0c;这就是…

ANSI/UTF-8/UCS2(UTF-16),以及回车换行

最近遇到一个linux 平台上invisible character (0x1d)引起的数据装载失败问题&#xff0c;正好借此机会整理一下字符编码的相关知识。 回车/换行&#xff1a; 顾名思义&#xff0c;回车和换行是两个不同的控制字符: -回车(Carriage Return)即\r&#xff0c;ascii码13(0x0d)&am…