매퍼/감속기 인스턴스가 영원히 계속 살아있는 jvm에서 어떻게 재사용됩니까? 같은 매퍼가 여전히 다른 포함 된 것이기 때문에 다음 멤버 집합 문제가 발생할 수있는 여러 작업/작업에 사용할 수있는 경우하둡 매퍼/감속기 재사용
public class MyMapper extends MapReduceBase implements Mapper<K1, V1, K2, V2> {
private Set<String> set = new HashSet<String>();
public void map(K1 k1, V1 v1, OutputCollector<K2, V2> output, Reporter reporter) {
... do stuff ...
set.add(k1.toString()); //add something to a list so that it can be used later
... do other stuff ...
if(set.contains("someString"))
emitSomeKindOfOutput(output);
else
emitSomeOtherKindOfOutput(output);
}
}
: 예를 들어
,의 내가 이런 일을하고 싶어 가정 해 봅시다 이전 작업/작업의 쓰레기. 이런 종류의 재사용이 가능합니까? 감속기는 어떨까요?
하나 이상의 작업/작업에 특정 매퍼 인스턴스를 재사용 할 수 있습니까? – Seth
@Seth 아니야 (기본값에 따라). 새로운 매퍼/감속기 인스턴스가 생성 될 때마다 - 새로운 JVM에서. – harpun
@Seth : 이미 언급했듯이 - 기본적으로는 아닙니다. –