【问题标题】:Reducers for Hive dataHive 数据的减速器
【发布时间】:2015-05-21 08:31:32
【问题描述】:

我是新手。我很想知道如何将减速器设置为不同的配置单元数据集。它是基于处理的数据的大小吗?还是为所有人提供一组默认的减速器?

例如,5GB 的数据需要多少个 reducer?相同数量的 reducer 会设置为更小的数据集吗?

提前致谢!!干杯!

【问题讨论】:

    标签: mapreduce hive


    【解决方案1】:

    在开源 hive 中(可能还有 EMR)

    # reducers = (# bytes of input to mappers)
                 / (hive.exec.reducers.bytes.per.reducer)
    

    默认 hive.exec.reducers.bytes.per.reducer 为 1G。

    reducer 的数量还取决于输入文件的大小 您可以通过设置属性 hive.exec.reducers.bytes.per.reducer 来更改它:

    通过更改 hive-site.xml

    hive.exec.reducers.bytes.per.reducer 1000000

    或使用集合

    hive -e "设置 hive.exec.reducers.bytes.per.reducer=100000

    【讨论】:

      【解决方案2】:

      在 MapReduce 程序中,reducer 是根据 reducer 输入中的 key 分配的。因此,对于分组输入中的每一对都会调用 reduce 方法。它与数据大小无关。

      假设如果您要执行一个简单的字数统计程序并且文件大小为 1 MB,但映射器输出包含 5 个密钥,这些密钥将用于 reducer 进行归约,那么就有机会获得 5 个 reducer 来执行该任务。

      但是假设如果你有 5GB 的数据并且 mapper 输出只包含一个键,那么只有一个 reducer 将被分配来将数据处理到 reducer 阶段。

      hive 中 reducer 的数量也由以下配置控制:

      mapred.reduce.tasks
      Default Value: -1
      

      每个作业的默认减少任务数。通常设置为接近可用主机数量的素数。当 mapred.job.tracker 为“本地”时忽略。 Hadoop 默认将此设置为 1,而 hive 使用 -1 作为其默认值。通过将此属性设置为 -1,Hive 将自动计算出减速器的数量。

      hive.exec.reducers.bytes.per.reducer
      Default Value: 1000000000
      

      默认为1G,即如果输入大小为10G,则使用10个reducer。

      hive.exec.reducers.max
      Default Value: 999
      

      将使用最大数量的减速器。如果配置参数 mapred.reduce.tasks 中指定的一个为负数,hive 在自动确定 reducer 数量时会使用这个作为最大 reducer 数量。

      减少了多少?

      reduce 的正确数量似乎是 0.95 or 1.75 乘以 (<no. of nodes> * mapred.tasktracker.reduce.tasks.maximum). 使用0.95,所有reduce 都可以立即启动并在映射完成时开始传输映射输出。使用1.75,更快的节点将完成第一轮reduce,并启动第二波reduce,从而更好地实现负载平衡。

      增加reduce数量会增加框架开销,但会增加负载平衡并降低故障成本。上面的缩放因子略小于整数,以便在框架中为推测任务和失败任务保留一些reduce槽.

      来源:http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html

      请查看以下链接以获取有关减速器的更多说明。

      Hadoop MapReduce: Clarification on number of reducers

      【讨论】:

        【解决方案3】:
        hive.exec.reducers.bytes.per.reducer
        
        Default Value: 1,000,000,000 prior to Hive 0.14.0; 256 MB (256,000,000) in Hive 0.14.0 and later
        

        来源:https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

        【讨论】:

          猜你喜欢
          • 2020-05-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-02
          • 2018-02-26
          • 2021-11-08
          相关资源
          最近更新 更多