`
yugouai
  • 浏览: 497540 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hive决定reducer个数的标准

 
阅读更多

Hadoop MapReduce程序中,reducer个数的设定极大影响执行效率,这使得Hive怎样决定reducer个数成为一个关键问题。遗憾的是Hive的估计机制很弱,不指定reducer个数的情况下,Hive会猜测确定一个reducer个数,

 

基于以下两个设定:

 

1. hive.exec.reducers.bytes.per.reducer(默认为1000^3

2. hive.exec.reducers.max(默认为999

 

计算reducer数的公式很简单:

N=min(参数2,总输入数据量/参数1)

通常情况下,有必要手动指定reducer个数。考虑到map阶段的输出数据量通常会比输入有大幅减少,因此即使不设定reducer个数,重设参数2还是必要的。依据Hadoop的经验,可以将参数2设定为0.95*(集群中TaskTracker个数)

分享到:
评论

相关推荐

    Hive优化方法整理

    1. 调整 Hive 的 reducer 个数,设置 set hive.exec.reducers.max=200; 2. 调整 Hive 的 map 任务个数,设置 set mapred.map.tasks= 200; 3. 调整 Hive 的 group by 操作的键对应的记录条数,设置 set hive.groupby....

    hive参数配置说明大全

    如果设置为1,则每个Job将只有一个Reducer,默认值为1。 7. hive.exec.scratchdir 该参数决定了HDFS路径,用于存储不同map/reduce阶段的执行计划和这些阶段的中间输出结果,默认值为/tmp/<user.name>/hive。 8. ...

    hive参数优化总结

    减少 Map 数可以通过合并小文件来实现,而增加 Map 数可以通过控制上一个 Job 的 reducer 数来控制。 1.2、Reduce 数 Reduce 数是 Hive 中另一个非常重要的参数,影响着数据处理的速度和效率。Reduce 数太大将导致...

    hive的学习资料

    包括 Hadoop 计算框架的特性、常用优化手段、全排序、笛卡尔积、EXIST 子句、决定 reducer 个数、合并 MapReduce 操作、Bucket 与 Sampling、Partition 和 JOIN 的优化、处理小文件和 GroupBy 的优化。 7. Hive ...

    分布式数据仓库Hive大全

    9.4 怎样决定reducer个数 55 9.5 合并MapReduce操作 55 9.6 Bucket 与 sampling 56 9.7 Partition 57 9.8 JOIN 58 9.8.1 JOIN原则 58 9.8.2 Map Join 58 9.8.3 大表Join的数据偏斜 60 9.9 合并小文件 62 9.10 Group ...

    Hive用户指南 Hive user guide 中文版

    - **Reducer个数**:合理设定Reducer数量可以提高查询速度。 - **合并MapReduce操作**:通过组合多个操作来减少MapReduce作业的次数。 - **Bucket与Sampling**:使用Bucket可以改善JOIN操作的性能。 - **Partition**...

    Hive用户指南(Hive_user_guide)_中文版.pdf

    高,决定了 Hive 不适合在线数据查询。 6. 执行。 Hive 中大多数查询的执行是通过 Hadoop 提供的 MapReduce 来实现的(类似 select * from tbl 的查询不需要 MapReduce)。而数据库通常有自己的执行引擎。

    hive常见的优化方案ppt

    7. **单个Reducer处理多组聚合**:`hive.single.reducer.group.by`可以尝试将多组聚合操作合并到一个Reducer,减少Reducer数量。 8. **控制并行Reduce任务**:通过`hive.exec.reducers.bytes.per.reducer`和`hive....

    Hive用户手册中文版.pdf

    此外,针对Hive的优化与技巧也很重要,例如决定合适reducer个数、合并MapReduce操作以及如何处理Join中的数据偏斜问题等。在使用Hive时,合理的优化可以极大提升查询效率和处理速度。 Hive还支持用户自定义函数UDF...

    大数据面试 Hive 八股文

    Hive是大数据领域中一个重要的数据仓库工具,它设计的目标是为大规模数据集提供数据查询和分析能力。由于Hive提供了类似SQL的查询语言(HQL),使得非Java背景的分析师也能轻松进行大数据处理。下面我们将深入探讨...

    hive监控巡检优化文档

    - **减小map数**:通过调整`hive.exec.reducers.bytes.per.reducer`等参数控制map输出大小。 - **减少job数**:设置`hive.merge.mapfiles`和`hive.merge.mapredfiles`为`true`,可以合并小文件,减少map/reduce ...

    hive优化建议.docx

    在处理大数据集时,这个操作可能导致数据倾斜,即某些Reducer处理的数据远多于其他Reducer,从而严重影响性能。为解决这个问题,建议使用 `group by` 代替 `count(distinct)`。例如,你可以先通过 `group by columnA...

    Hive用户指南(Hive_user_guide)_中文版

    ### Hive用户指南中文版知识点概览 ...- **9.4 怎样决定reducer个数**:合理设置reducer数量以平衡性能和资源使用。 - **9.5 合并MapReduce操作**:减少不必要的MapReduce作业,提高整体流程的效率。 - **...

    hive面试题

    - **灵活性**: 对于复杂的分析需求,Hive允许开发者编写自定义的Mapper和Reducer程序来补充内置的功能。 **1.2 Hive系统架构** Hive的架构主要基于HDFS和MapReduce。Hive的关键组成部分包括客户端和服务端组件,...

    hive性能优化

    公式为`num_reduce_tasks = min(${hive.exec.reducers.max},${input.size} / ${hive.exec.reducers.bytes.per.reducer})`,其中`hive.exec.reducers.bytes.per.reducer`是每个Reducer处理的字节数,默认值为1GB。...

Global site tag (gtag.js) - Google Analytics