1.3.17

Lambda Architecture 소개

Hadoop 프레임 워크를 사용하여 배치 기반 데이터 처리에서 실시간 데이터 처리로의 패러다임 전환을 목격하고 있습니다. 이러한 발전에도 불구하고 웹 규모의 데이터를 실시간으로 처리하는 것은 여전히 어려움에 직면하고 있습니다. 완벽한 데이터 처리 시스템을 구축하기 위해 많은 기술을 사용할 수 있지만 이를 통합하고 조율하는 데 적합한 도구를 선택하는 것은 복잡하고 어렵습니다.
Lambda Architecture는 "query = function (all data)"라는 방정식을 따르는 견고하고 확장 가능한 데이터 시스템을 구축하기 위한 명확한 아키텍처 원칙을 정의하고 있습니다.

Lambda Architecture는 세 가지 주요 설계 원칙을 기반으로합니다.

1. human fault-tolerance - 시스템은 규모면에서 돌이킬 수 없기 때문에 데이터 손실이나 데이터 손상이 발생하지 않습니다.
2. data immutability - 영구적으로 변하지 않는 가장 원시적인 형태의 데이터를 저장합니다.
3. recomputation - 위의 두 원칙을 사용하면 원시 데이터에서 함수를 실행하여 결과를 항상 (다시) 계산할 수 있습니다.

일반적으로 lambda architecture는 batch layer, serving layer 및 speed layer의 3가지 layer로 구성됩니다.

lambda architecture에 대한 이미지 검색결과

Batch Layer

Batch Layer에는 HDFS와 같은 분산 파일 시스템에 저장된 변경 불가능하고 지속적으로 증가하는 마스터 데이터 세트가 포함되어 있습니다. Batch Processing (MapReduce)를 사용하면 일괄 뷰라고하는 임의의 뷰가 원시 데이터 집합에서 계산됩니다. 따라서 Hadoop은 Batch Layer 개념에 가장 적합합니다.

Serving Layer

Serving Layer의 작업은 쿼리 할 수 ​​있도록 데이터 뷰에 배치 뷰를 로드하고 노출하는 것입니다. 이 서빙 계층 데이터 저장소에는 임의 쓰기가 필요하지 않지만 배치 업데이트 및 임의 읽기를 지원해야 하므로 매우 간단합니다. 이와 관련해서 beElephantDB 또는 Voldemort가 있습니다.

Speed Layer

Speed Layer은 새로운 데이터만을 다루고 Serving Layer의 대기 시간이 긴 업데이트를 보완합니다. 실시간 처리 (HBase)를 계산하기 위해 스트림 처리 시스템 (Storm, S4, Spark) 및 임의의 읽기/쓰기 데이터 스토어를 활용합니다. 이러한 뷰는 배치 및 서빙 계층을 통해 데이터가 발견 될 때까지 유효합니다.
완전한 결과를 얻으려면 일괄 뷰와 실시간 뷰를 쿼리하고 결과를 함께 병합해야합니다.

lambda architecture에 대한 이미지 검색결과
Lambda Architecture는 명확한 일련의 원칙을 정의하여 Big Data 시스템의 복잡성을 처리하는 첫 번째 방법입니다. Sentric은 모든 빅 데이터 시스템에 적용 할 수있는 훌륭한 접근 방식이므로 고객에게 이러한 아키텍처 원칙 (또는 그 중 일부)을 채택했습니다. 특히 불변성, 인간의 내결함성 및 재 계산은 Hadoop 플랫폼에 쉽게 적용 할 수있는 좋은 원칙입니다.
실시간 요구 사항에 따라 종종 Speed Layer가 필요하지 않습니다. 누락되면 시스템 전체가 복잡해 지지만 Lambda Architecture의 장점은 Speed Layer가 나중에 번거롭지 않게 통합 될 수 있다는 것입니다.


No comments:

Post a Comment