2017-02-16 1 views
2

많은 센서의 많은 이벤트를 거의 실시간으로 처리해야하는 새로운 세대의 분석 시스템을 설계하고 있습니다. 그리고이를 수행하기 위해 Hadoop, Spark Streaming 또는 Flink과 같은 Big Data Analytics 플랫폼 중 하나를 사용하고 싶습니다.MapReduce : HashMap을 매퍼에게 전달하는 방법

각 이벤트를 분석하기 위해 테이블 ​​(DB)에서 메타 데이터를 사용하거나 캐싱 된 맵에로드해야합니다.

문제는 각 매퍼가 여러 노드에서 병렬 처리 될 것이라는 점입니다.

  • 첫째, 방법 /로드 맵퍼로는 HashMap을 통과 :

    그래서 내가 처리 할 수있는 두 가지가?

  • 맵퍼간에 일관된 HashMap을 유지할 수있는 방법이 있습니까?
+1

DistributedCache가 당신이 찾고있는 것입니다. - http://stackoverflow.com/questions/21239722/hadoop-distributedcache-is-deprecated-what-is-the-preferred-api. 모든 Mappers에서 메타 데이터 파일을 사용할 수 있습니다. –

+0

DB를 질의하여 각 매퍼의'setup()'메소드에서 해시 맵을 만들 수도 있습니다. –

+0

하둡 또는 스파크를 사용 하시겠습니까? 해결책은 상당히 다를 수 있습니다. 또한 모든 매퍼가 동일한 정보를 갖도록해야합니까, 아니면 매 매퍼마다 고유해야합니까? –

답변

0

직렬화 HashMap의 구조는 파일의 모든 매퍼에 걸쳐 일련의 HashMap와 파일을 확산 HDFS와 맵리 듀스 작업 구성 단계를 사용 DistributedCache에 그것을 저장합니다. 그런 다음 매핑 단계에서 각 매퍼가 파일을 읽고 역 직렬화 한 다음이 HashMap에 액세스 할 수 있습니다.

관련 문제