2012-10-02 2 views
0

저는 Hadoop, MapReduce, Big Data를 처음 사용하고 있으며, 제가 작업중인 프로젝트에서 매우 흥미로운 특정 유스 케이스에 대한 실행 가능성을 평가하려고합니다. 그러나 내가 달성하고자하는 것이 A) 가능하거나 B) MapReduce 모델과 함께 권장되는지 확실하지 않습니다.실행 가능한 MapReduce 유스 케이스인가, 실행 가능한가?

우리는 본질적으로 상당한 양의 위젯 (알려진 데이터 구조)과 가격 책정 모델 (JAR 파일로 성문화되어 있음)을 가지고 있으며, 우리가 할 수 있기를 원하는 것은 위젯과 가격 모델의 모든 조합을 실행하여 결과를 결정하는 것입니다 모델 순열 전반에 걸친 가격 책정. 가격 결정 모델 자체는 각 위젯을 검사하고 모델 내의 의사 결정 트리를 기반으로 가격을 결정합니다.

내 생각에 상품 인프라 관점에서 병렬 처리하는 것이 합리적이지만 기술적 인 관점에서 볼 때 MR 작업 내에서 외부 모델을 실행할 수 있는지 그리고 실용적인 관점에서 볼지 모르겠다. 기술에 유스 케이스를 강제합니다.

질문은되므로가 능합니다; 이런 식으로 구현하는 것이 이치에 맞습니까? 이 시나리오에 더 적합한 다른 옵션/패턴은 무엇입니까?

편집 시간이 지남에 따라 부피와 품종이 커질 것입니다. 지금 논의를 위해 가정용 테라 바이트의 위젯과 10 가지 가격 모델이 있다고 가정 해 보겠습니다. 그런 다음 여러 테라 바이트와 100 가지 가격 책정 모델을 기대할 수 있으며, 위젯이 변경되거나 추가되거나 가격 모델의 새로운 카테고리가 도입 될 때마다 순열의 실행이 자주 발생합니다.

+0

흥미로운 내용 ... 보유한 데이터의 양에 대해 더 구체적으로 설명 할 수 있습니까? MapReduce, Hadoop 및 BigData는 훌륭하지만 솔직히 처리 할 테라 바이트 이상의 원시 데이터가 없으면 과장입니다. –

답변

0

확장 성 있고 병렬화가 가능한 솔루션이 필요하며 할 수 있습니다. 당신은 단지 당신의 솔루션을 조금 마사지해야만합니다.

먼저 실제 구현이나 표현에 대해 알 필요없이 임의의 위젯에 임의의 모델을 적용 할 수 있도록 모델과 위젯에 공용 인터페이스 (매우 추상적으로 여기에서 말함)를 구현해야합니다.

둘째, ID로 모델과 위젯을 모두 참조 할 수 있어야합니다. 그러면 모델의 ID와 위젯의 ID를 보유하는 객체 (writable)를 만들 수있게되어 위젯과 모델의 교차 제품에서 하나의 "셀"을 나타냅니다. 이러한 인스턴스를 여러 서버에 배포하면 모델의 응용 프로그램을 여러 서버의 위젯에 배포 할 수 있습니다. 이러한 객체 (ModelApply 클래스라고 함)는 특정 모델 - 위젯 응용 프로그램의 결과를 보유하며 최상의 응용 프로그램에서 다시 작성하기 위해 hadoop을 사용하여 일반적인 방법으로 처리 할 수 ​​있습니다.

셋째, 이것은 까다로운 부분이므로 위젯에 대한 모델의 실제 교차 제품을 계산해야합니다. 모델의 수 (따라서 모델 ID)는 최대 수백 개에 달할 것이라고 말합니다. 즉, 매퍼의 메모리에 해당 ID 목록을로드하고 해당 목록을 위젯 ID에 매핑 할 수 있습니다. 맵퍼의 map() 메소드를 호출 할 때마다 위젯 ID가 전달되고 각 모델에 대해 ModelApply 인스턴스가 하나 작성됩니다.

나는 지금 당장 그것에 관해서하겠습니다.

관련 문제