MapReduce : 내결함성 분산 계산 프레임 워크. MapReduce를 사용하면 하드웨어로 인한 장애를 방지하기 위해 많은 작업을하면서 대량의 데이터를 처리 할 수 있습니다. MapReduce는 속도가 느리기 때문에 결과를 즉시 계산하기에 적합하지 않습니다. (일반적인 MapReduce 작업은 마이크로 초가 아닌 몇 분 또는 몇 시간 정도 걸립니다)
MapReduce 작업은 파일 (또는 일부 데이터 저장소)을 입력으로 가져 와서 결과 파일을 씁니다. 이러한 결과를 응용 프로그램에서 사용할 수있게하려면이 데이터를 액세스 할 수있는 장소에 두어야합니다. 속도가 느릴 수 있으며 표시 할 수있는 값과 현재 상태의 시스템을 나타내는 값 사이에 지연이 발생합니다.
실시간 시스템을 구축 할 때 MapReduce를 사용할 때 고려해야 할 중요한 차이점은 모델 교육 및 모델 적용입니다. 모형 매개 변수가 빠르게 변경되지 않는다고 생각하는 경우 MapReduce를 사용하여 모형 매개 변수를 적합 화 한 다음 모형을 적용 할 때 이러한 사전 적합 매개 변수에 액세스하는 메커니즘을 가질 수 있습니다.
스톰 : 실시간 스트리밍 계산 시스템. Storm은 온라인 프레임 워크로,이 의미에서 실행중인 응용 프로그램과 상호 작용하는 서비스를 의미합니다. MapReduce와 달리 응용 프로그램에서 처리 될 때 전체 파일이 아닌 작은 데이터 조각을받습니다. 데이터에 대해 수행 할 작업의 DAG를 정의합니다. Storm의 일반적이고 간단한 사용 사례는 카운터를 추적하고 해당 정보를 사용하여 실시간 대시 보드를 채우는 것입니다.
Storm은 데이터 유지와 (필수적으로) 관련이 없습니다. 여기서 스트리밍은 관심있는 정보를 유지하고 나머지는 버리는 또 다른 방법입니다. 실제로 응용 프로그램에 이미 데이터를 기록한 지속성 계층이있을 수 있으므로이 문제는 훌륭하고 정당한 분리입니다.
자세한 내용을 알고 싶은 경우 ...
MR을 사용하여 매개 변수에 맞는 실시간 시스템에 대해 더 배우고 모델을 다른 방식으로 적용하려면 여기에서 실시간 추천 엔진을 구축하는 대화에 대한 슬라이드가 있습니다. HBase.
흥미로운 방식으로 실시간 계산 및 지속성과 결혼하는 훌륭한 논문은 Google 뉴스 개인화 : 확장 가능한 온라인 협업 필터링입니다.
MR과 Storm의 또 다른 흥미로운 결혼은 SummingBird 입니다. Summingbird를 사용하면 Storm 또는 MR을 통해 적용 할 수있는 데이터 분석 작업을 정의 할 수 있습니다.