[HADOOP] hadoop - 맵 작업 및 정적 변수 감소
HADOOPhadoop - 맵 작업 및 정적 변수 감소
방금 일부 hadoop / hbase MapReduce 작업 (cloudera 사용)을 시작했고 다음 질문을했습니다.
예를 들어 주 변수와 정적 변수가있는 java 클래스가 있다고 가정 해 보겠습니다. 이 클래스는 Mapper 및 Reducer 작업에 해당하는 내부 클래스를 정의합니다. 작업을보기 전에 주 변수는 정적 변수를 초기화합니다. 이 변수는 Mapper 클래스에서 읽습니다. 그런 다음 클러스터에서 'hadoop jar'를 사용하여 클래스를 시작합니다.
내 질문 : 다른 노드에서 Map 및 Reduce 작업이 정적 변수를 볼 수있는 방법을 알지 못합니다. 노드가 jvm 또는 정적 변수를 공유 할 수있게하는 "hadoop magic"이 있습니까? 이것도 어떻게 작동할까요? 나는 그저 클래스를 작업해야만하고 non-mononode 클러스터에서 이것이 어떻게되는지를 알 수 없다. 고맙습니다
해결법
-
==============================
1.분산 Hadoop 클러스터에서 각 Map / Reduce 작업은 자체 JVM에서 실행됩니다. 따라서 다른 JVM (그리고 다른 노드)에서 실행중인 다른 클래스 인스턴스간에 정적 변수를 공유 할 수있는 방법은 없습니다.
분산 Hadoop 클러스터에서 각 Map / Reduce 작업은 자체 JVM에서 실행됩니다. 따라서 다른 JVM (그리고 다른 노드)에서 실행중인 다른 클래스 인스턴스간에 정적 변수를 공유 할 수있는 방법은 없습니다.
그러나 작업간에 불변의 데이터를 공유하려면 Configuration 클래스를 사용할 수 있습니다.
// driver code Configuration config = Configuration.create(); config.setLong("foo.bar.somelong",1337); ... // mapper code public class SomeMapper ... { private long someLong = 0; public void setup(Context context) { Configuration config = context.getConfiguration(); someLong = config.getLong("foo.bar.somelong"); } }
from https://stackoverflow.com/questions/24280415/hadoop-map-reduce-task-and-static-variable by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop MapReduce 작업을 실행할 때 Map의 키 / 값 입력으로 Filename / FileData 가져 오기 (0) | 2019.06.11 |
---|---|
[HADOOP] hadoop 클러스터에서 id 생성을 처리하는 방법은 무엇입니까? (0) | 2019.06.11 |
[HADOOP] 하이브에서 줄 바꿈 문자 처리 (0) | 2019.06.11 |
[HADOOP] "hadoop version"명령을 실행하는 동안 Cygwin에서 Hadoop의 CLASSPATH 문제 (0) | 2019.06.10 |
[HADOOP] 지도 전용 작업에 셔플 및 정렬이 있습니까? (0) | 2019.06.10 |