`
yugouai
  • 浏览: 500134 次
  • 性别: 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 ...

    大数据时代基于Hadoop的一个数据仓库工具hive

    大数据时代基于Hadoop的一个数据仓库工具Hive Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行。其...

    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性能优化

    数据倾斜通常发生在特定键值对应的数据过多,导致这些数据被分配到同一个Reducer处理,进而导致处理时间延长。对于一些聚合操作如sum和count,由于它们不会因为数据倾斜受到太大影响,所以执行效率较高。然而,对于...

    hive监控巡检优化文档

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

    Hive 入门教程-Apache Hive入门介绍与HQL语法解析

    Hive 是一个构建在 Hadoop 之上的数据仓库基础设施。它的设计目的是为了简化大数据的存储、查询和分析过程。通过引入类似 SQL 的查询语言(HQL),使得传统数据库领域的用户能够更容易地操作 Hadoop 中的大规模数据...

    大数据面试 Hive 八股文

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

    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。...

    写好Hive_程序的五个提示

    ### 写好Hive程序的五个提示 #### 一、理解Hive的排序与分区机制 **背景**:Hive是一种基于Hadoop的数据仓库工具,它可以帮助用户方便地进行数据提取、转换和加载(ETL),同时提供了一种SQL-like语言(HiveQL)来...

Global site tag (gtag.js) - Google Analytics