이제 MapReduce 작업의 모든 매퍼/감속기에서 액세스하고 변경할 수있는 전역 변수 (멤버)를 만들고 싶습니다. 처음에는 메인 자바 파일에 정적 인 이중 멤버를 명시하려고했지만 각 매퍼/감속기가 별도의 JVM에서 실행되고 멤버가 변경되어 올바르게 액세스 될 수 있기 때문에 문제가있는 것 같습니다.Hadoop MapReduce의 Java 구현에서 전역 변수를 만드는 방법은 무엇입니까?
int 변수에는 counter
메커니즘이 있다는 것을 알고 있습니다. 그러나 글로벌 double 변수를 만들고 싶다면 어떻게해야합니까?
최종 목표는 모든 매퍼/리듀서에서 이중 형식 인 것을 요약하는 것입니다. 전역 변수를 만들 수 없거나 만들지 않아야한다면, 그 목표를 달성 할 수있는 다른 방법이 있습니까?
전역 변수는 기본적으로 map/reduce로 수행 할 수있는 것과 반대입니다. 그것도하려고하지 마십시오. 비록 당신이 그것을 모방 할 수 있다고하더라도, 그것은 map/reduce의 모든 목적을 무효화하고 parallelization이 효력을 발휘하지 못하게합니다. –
@LouisWasserman 그러나 내가 매퍼 (mappers) 또는 감속기 (reducers)에서 두 배가되는 것을 합산하려면 어떻게해야합니까? – Denzel
@LouisWasserman 질문에 추가했습니다. – Denzel