当使用一个聚合器函数代替一个缩减器时,hadoop是否足够聪明,可以在合并器阶段使用相同的函数?
vlurs2pr1#
它们在一定程度上实现了相同的目的,但聚合器更为通用,可以在组合器无法实现的情况下使用。所以这是一个明确的否,聚合器将不会自动用作合并器。如果你想把它作为一个组合器使用,你就必须这样指定它。引用自cascade,“组合器仅限于结合和交换函数,如‘sum’和‘max’。并且为了工作,从map任务发出的值必须被序列化、排序(反序列化和比较)、再次反序列化和操作“
1条答案
按热度按时间vlurs2pr1#
它们在一定程度上实现了相同的目的,但聚合器更为通用,可以在组合器无法实现的情况下使用。
所以这是一个明确的否,聚合器将不会自动用作合并器。如果你想把它作为一个组合器使用,你就必须这样指定它。
引用自cascade,“组合器仅限于结合和交换函数,如‘sum’和‘max’。并且为了工作,从map任务发出的值必须被序列化、排序(反序列化和比较)、再次反序列化和操作“