我想确保 MapReduce 程序(在 Hadoop 中)不会在映射器端进行任何组合。我知道conf.setCombinerClass()
将组合器类设置为我们指向的类。
如果我们不使用此 set 函数指定组合器类,那么是禁用了组合还是仍然应用了一些隐式默认组合器。如果是这样,那么我们如何禁用这种组合?
我想确保 MapReduce 程序(在 Hadoop 中)不会在映射器端进行任何组合。我知道conf.setCombinerClass()
将组合器类设置为我们指向的类。
如果我们不使用此 set 函数指定组合器类,那么是禁用了组合还是仍然应用了一些隐式默认组合器。如果是这样,那么我们如何禁用这种组合?
没有默认的组合器,因为不是所有的 map reduce 算法都可以容纳一个。Hadoop 无法自动确定或生成任意映射器和归约器类,什么组合器(如果有)甚至可以工作。
以下帖子解释了哪些类型的 MR 算法有资格使用组合器:
http://jazzjuice.blogspot.com/2011/08/requirements-for-using-hadoop-combiner.html
没有隐式组合器,您必须明确设置它。