大数据之Hive Mapper和Reducer数量设置

本文探讨了在Hive使用MapReduce作为计算引擎时,如何设置Mapper和Reducer的数量。针对运营团队反馈的数据加载问题,作者分析了由于部分文件未加载导致的数据不全情况,并详细解释了HiveInputFormat和CombineHiveInputFormat两种不同格式下,Mapper个数的计算方式。同时,文章还介绍了Reducer数量的计算方法,强调合理设置能避免小文件过多和OOM问题,以确保大数据分析任务的高效执行。
摘要由CSDN通过智能技术生成

目的:

深入认识hive 以mapreduce 为计算引擎时Mapper 和Reducer的设置

背景;

运营团队反映,公司广告业务的日活用户数据量偶尔呈剧烈下降趋势,同时出现用户数低于日活用户数据的问题,后来查看离线解析任务,执行过程正常但是数据的加载却除了问题——部分文件并没有加载到操作型数据库(提供数据展示的库,infobright)

大数据之Hive Mapper和Reducer数量设置

 

问题分析:

由于load 数据时只加载了000000_0 文件,所以导致数据库中数据不齐全,同时产生的结果文件数量和Reducer 的个数相关。


认识InputFormat 接口

简单说就是用于描述数据的输入格式,

@Public
@Stable
public interface InputFormat<K, V> {
 InputSplit[] getSplits(JobConf var1, int var2) throws IOException;
 RecordReader<K, V> getRecordReader(InputSplit var1, JobConf var2, Reporter var3) throws IOException;
}
从源码可以看出,该接口下的两个方法的功能分别是将输入的文件分片(splits)和将输入的splits 转化成key-value 数据,
hive> set hive.input.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值