람다 아키텍처 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
2번째 줄: 2번째 줄:
  
 
== 개요 ==
 
== 개요 ==
람다 아키텍처는 [[아파치]] [[스톰]] 개발자인 나단 마즈(Nathan Marz)가 제안한 개념으로, 실시간 [[레이어]]와 배치 레이어를 결합하여 [[빅데이터]]의 실시간 분석을 지원하는 [[아키텍처]]를 의미한다. 예를 들면, 배치 분석을 통해 일자별로 통계를 생성하고, 당일 데이터는 별도의 실시간 통계를 유지한 다음, 이를 합쳐서 실시간 분석을 제공한다. [[하둡]](Hadoop) 기반으로 람다 아키텍처를 구현할 때에는 일반적으로 하둡 분산 파일 시스템(Hadoop Distributed File System)에 적재된 데이터를 [[맵리듀스]](Map Reduce)나 [[하이브(빅데이터)|하이브]](Hive)로 배치 분석하고, 스톰이나 [[스파크]] 같은 스트리밍 솔루션으로 실시간 집계를 수행한 뒤, 이를 [[에이치베이스]](HBase)나 [[관계형 데이터베이스 관리 시스템]](RDMS)에서 통합하여 실시간에 가까운 분석을 유지한다. 이와 같은 구성은 의도한 대로 실시간 빅데이터 분석을 지원하기는 하지만, 이티엘(Extraction, Transformation, Loading) 작업부터 시각화 단계에 이르기까지 독립적인 다수의 구성요소를 통합하여 개발해야 하므로 구축 및 운영에 있어서 많은 어려움이 있다.  
+
람다 아키텍처는 [[아파치]] [[스톰]] 개발자인 나단 마즈(Nathan Marz)가 제안한 개념으로, 실시간 [[레이어]]와 배치 레이어를 결합하여 [[빅데이터]]의 실시간 분석을 지원하는 [[아키텍처]]를 의미한다. 예를 들면, 배치 분석을 통해 일자별로 통계를 생성하고, 당일 데이터는 별도의 실시간 통계를 유지한 다음, 이를 합쳐서 실시간 분석을 제공한다. [[하둡]](Hadoop) 기반으로 람다 아키텍처를 구현할 때에는 일반적으로 하둡 분산 파일 시스템(Hadoop Distributed File System)에 적재된 데이터를 [[맵리듀스]](Map Reduce)나 [[하이브]](Hive)로 배치 분석하고, 스톰이나 [[스파크]] 같은 스트리밍 솔루션으로 실시간 집계를 수행한 뒤, 이를 [[에이치베이스]](HBase)나 [[관계형 데이터베이스 관리 시스템]](RDMS)에서 통합하여 실시간에 가까운 분석을 유지한다. 이와 같은 구성은 의도한 대로 실시간 빅데이터 분석을 지원하기는 하지만, 이티엘(Extraction, Transformation, Loading) 작업부터 시각화 단계에 이르기까지 독립적인 다수의 구성요소를 통합하여 개발해야 하므로 구축 및 운영에 있어서 많은 어려움이 있다.  
  
 
인터넷에 연결되는 수십만 대의 [[사물인터넷]](IOT) 센서 데이터를 실시간으로 분석할 때에는 더욱 어려움이 따른다. 실무에서는 센서 데이터에 포함된 식별자를 기준으로 원본 데이터에 다양한 메타데이터를 추가하여 분석을 수행하는 사례를 흔히 볼 수 있다. 예를 들면, 셋톱박스의 식별자를 연령, 지역, 상품명 등으로 맵핑하여 다양한 분석을 수행하게 된다. 가장 흔한 설계 오류는 아래와 같이 [[스트리밍]] 솔루션에서 로그가 수신될 때마다 관계형 데이터베이스 관리 시스템을 대상으로 매번 쿼리하는 구성이다. 아키텍처에서는 [[데이터베이스]]에 대한 메타데이터 쿼리가 네트워크 스택의 레이턴시를 포함하여 1밀리초 이내에 응답한다고 하더라도 1000TPS를 내기 어려운 구성이 된다. 일반적으로는 실시간 스트리밍 처리와 배치 분석이 별개의 솔루션으로 구성되는데, 이렇게 다수의 컴포넌트로 구성된 아키텍처에서 가장 큰 성능의 병목은 메모리에 있는 데이터를 바이너리로 직렬화하고 네트워크 I/O를 수행하는 연동 구간에 존재한다.<ref name="차">〈[https://ko.logpresso.com/documents/post-lambda 차세대 람다 아키텍처]〉, 《로그프레소》</ref>
 
인터넷에 연결되는 수십만 대의 [[사물인터넷]](IOT) 센서 데이터를 실시간으로 분석할 때에는 더욱 어려움이 따른다. 실무에서는 센서 데이터에 포함된 식별자를 기준으로 원본 데이터에 다양한 메타데이터를 추가하여 분석을 수행하는 사례를 흔히 볼 수 있다. 예를 들면, 셋톱박스의 식별자를 연령, 지역, 상품명 등으로 맵핑하여 다양한 분석을 수행하게 된다. 가장 흔한 설계 오류는 아래와 같이 [[스트리밍]] 솔루션에서 로그가 수신될 때마다 관계형 데이터베이스 관리 시스템을 대상으로 매번 쿼리하는 구성이다. 아키텍처에서는 [[데이터베이스]]에 대한 메타데이터 쿼리가 네트워크 스택의 레이턴시를 포함하여 1밀리초 이내에 응답한다고 하더라도 1000TPS를 내기 어려운 구성이 된다. 일반적으로는 실시간 스트리밍 처리와 배치 분석이 별개의 솔루션으로 구성되는데, 이렇게 다수의 컴포넌트로 구성된 아키텍처에서 가장 큰 성능의 병목은 메모리에 있는 데이터를 바이너리로 직렬화하고 네트워크 I/O를 수행하는 연동 구간에 존재한다.<ref name="차">〈[https://ko.logpresso.com/documents/post-lambda 차세대 람다 아키텍처]〉, 《로그프레소》</ref>
49번째 줄: 49번째 줄:
 
|align=center|인-메모리
 
|align=center|인-메모리
 
|-
 
|-
|align=center|[[하이브(빅데이터)|하이브]]<br>(Hive)
+
|align=center|하이브<br>(Hive)
 
|align=center|하이브큐엘, 자바
 
|align=center|하이브큐엘, 자바
 
|align=center|하둡
 
|align=center|하둡

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)