3.控制hive map reduce个数
参考:
https://blog.csdn.net/wuliusir/article/details/45010129
https://blog.csdn.net/zhong_han_jun/article/details/50814246
1.split的计算方式:
splitsize = max(splitsize,min(blocksize,filesize/NUMmaps))
NUMmaps即为默认的map数,默认为1,也就是说最大的splitsize为文件的大小。
2.不同的hive.input.format时map个数
hive 的split size在使用不同的input format时依赖的参数不同。
- hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
此时由以下三个参数控制
mapred.max.split.size #控制最大split
mapred.min.split.size.per.node #控制最小split,优先级低
mapred.min.split.size.per.rack #控制最小split,优先级高
- hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat
此时由
mapred.min.split.size
mapred.map.tasks #可以忽略,默认为1
在做split时,不如一个split的数据也会放到一个map执行,如果splitsize 128m,文件150m,则会有两个map,一个128m,另外一个22m,这样两个map执行的时间就不一样了
注意
把mapred.min.split.size\mapred.min.split.size.per.node 从128M增加到256M,可能并不会降低map数,这时需要增大数值,一边增加一边测试
3.reduce个数
reduce可以通过设置set mapred.reduce.tasks=100
来指定个数,或者指定reduce计算的数据,set hive.exec.reducers.bytes.per.reducer=1073741824
以下是个样例:
set mapred.max.split.size=1024000000;
set mapred.min.split.size.per.node=512000000;
set mapred.min.split.size.per.rack=512000000;
set mapreduce.task.io.sort.mb=200;
set hive.exec.parallel.thread.number=1 ;
set mapred.reduce.tasks = 314;
set mapreduce.map.memory.mb=1024;
set mapreduce.task.io.sort.factor=50;
3.控制hive map reduce个数的更多相关文章
- 【转】hive优化之--控制hive任务中的map数和reduce数
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置 ...
- hive优化之------控制hive任务中的map数和reduce数
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的 ...
- hive优化之——控制hive任务中的map数和reduce数
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务.主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文 ...
- Hive任务优化--控制hive任务中的map数和reduce数
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务.主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文 ...
- map和reduce 个数的设定 (Hive优化)经典
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置 ...
- 如何在hadoop中控制map的个数
hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数.但是通过这种方式设置map的个数,并不是每次都有效的.原因是mapred.map. ...
- 如何在hadoop中控制map的个数 分类: A1_HADOOP 2015-03-13 20:53 86人阅读 评论(0) 收藏
hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数.但是通过这种方式设置map的个数,并不是每次都有效的.原因是mapred.map. ...
- Map/Reduce 工作机制分析 --- 作业的执行流程
前言 从运行我们的 Map/Reduce 程序,到结果的提交,Hadoop 平台其实做了很多事情. 那么 Hadoop 平台到底做了什么事情,让 Map/Reduce 程序可以如此 "轻易& ...
- Map/Reduce个人实战--生成数据测试集
背景: 在大数据领域, 由于各方面的原因. 有时需要自己来生成测试数据集, 由于测试数据集较大, 因此采用Map/Reduce的方式去生成. 在这小编(mumuxinfei)结合自身的一些实战经历, ...
随机推荐
- Electron简介和安装使用
一.Electron简介Electron的应用,使得了JS不仅仅可以BS端项目,还可以做CS端项目. 另外今天之所以研究下Electron,还是因为公司的需要,业务场景是,通过Electron.js开 ...
- empty与isset,null与undefined
一. null VS undefined VS NaN 1. null 定义:null是特殊的object,是空对象,没有任何属性和方法. document.writeln(typeof null); ...
- python -- 解决UnicodeEncodeError问题
使用中文字段时,经常会出现该异常:UnicodeEncodeError: 'ascii' codec can't encode characters in position 解决方法1: 在开头加上 ...
- 使用jquery获取url上的参数(笔记)
使用jquery获取url上的参数(笔记) 一.做作业时经常要获取url上的参数 1.当url上有多个参数时 从互联网找到了一个方法 (function ($) { $.getUrlParam = f ...
- PHP各环境下的伪静态配置
一.Apache的伪静态配置 1.网站根目录下需要有 .htaccess 文件,没有则自己创建一个,内容为 <IfModule mod_rewrite.c> RewriteEngine o ...
- 深度学习框架caffe在ubuntu下的环境搭建
深度学习实验室服务器系统配置手册 目录: 一,显卡安装 二,U盘启动盘制作 三,系统安装 四,系统的基本配置 五,安装Nvidia驱动 六,安装cuda ...
- c++ 变量共享内存-联合(union)
共享内存极少使用,所以这里我们仅作了解. .将几个变量放在相同的内存区,但其中只有一个变量在给定时刻有有效值. .程序处理许多不同类型的数据,但是一次只处理一种.要处理的类型在执行期间才能确定. .在 ...
- 【转载】COM 组件设计与应用(四)——简单调用组件
原文:http://vckbase.com/index.php/wv/1211.html 一.前言 同志们.朋友们.各位领导,大家好. VCKBASE 不得了, 网友众多文章好. 组件设计怎么学? 知 ...
- noip2017普及题解
https://www.luogu.org/problemnew/show/3954 https://www.luogu.org/problemnew/show/3955 https://www.lu ...
- ModelForm解密
一.复用model表和字段 models.py文件 class User(models.Model): username = models.CharField(max_length=32) emai ...