我想知道是否可以添加一个可以在多个 map() 调用中使用的成员对象。例如,一个 StringBuilder:
private StringBuilder builder;
public void map(...){
...
builder.setLength(0);
builder.append(a);
builder.append(b);
builder.append(c);
d = builder.toString();
...
}
显然,如果 mapper 对象在多个线程之间共享,由于来自多个线程的并发访问,上面的 builder 对象将不会像预期的那样运行。
所以我的问题是:是否保证 hadoop 中的每个线程都会为自己使用一个专用的映射器对象?或者它是一种可配置的行为?
谢谢