我在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。这样,我们将拥有更多的化简器来处理数据。