我在60 GB dataset in Hive上运行查询。当我触发查询时,270 mappers将在15分钟内完成,但是到reducer state to complete 0.01%时,它至少需要45分钟才能达到1小时。因此,这项工作将永远进行下去。有什么办法可以解决

最佳答案

为什么不使用组合器和分区器?

  • 案例
    您可以使用合并器,这是一个小型还原阶段。
    例如:如果您的映射器生成100行数据,并且如果您使用合并器对其进行聚合,则它将减少为一行和1行* 270(mappers)= 270行,并将其作为输入。
  • 案例:
    您可以使用分区程序根据键(如果唯一)或值(在范围内)对数据进行分区,例如value> 20返回0;否则返回1。这样,我们将拥有更多的化简器来处理数据。
  • 10-06 01:35