IT 삽질기

람다 아키텍처(lambda-architecture)란? 본문

BigData

람다 아키텍처(lambda-architecture)란?

화이팅빌런 2021. 8. 23. 23:23

이번 글에서는 빅데이터 시스템을 설계할 때 고려할 수 있는 architecture중 하나인 람다 아키텍처에 대해서 알아보도록 하자.

람다 아키텍처

람다 아키텍처는 실시간 분석을 지원하며, 배치와 스트림 방식을 모두 활용하여 많은 양의 데이터를 처리할 수 있게 하는 아키텍처이다. 아래의 그림은 람다 아키텍처를 그림으로 나타낸 것으로 그림을 통해 좀 더 자세하게 살펴보도록 하자.

http://lambda-architecture.net/

먼저 각각의 layer에 대해서 알아보자.

Batch layer

Batch layer은 수시로 생성되는 데이터에 대해 주기적으로 실행되며 batch view를 만들어내는 역할을 한다. 이 글에서는 Batch layer의 주기가 일별로 동작하는 것을 가정하여 설명하도록 한다. 이렇게 배치작업을 이용해 데이터를 생성하게 되면 데이터에 이상이 생겼을 때 배치잡을 이용해 데이터 복구가 가능하다는 점이 있다. 또한, 많은 양의 데이터를 실시간으로 계속 집계하는것은 시스템적으로 부하가 크기 때문에 이러한 문제도 자연스럽게 해소할 수 있을 것이다.

Speed layer

다음으로 Speed layer에 대해서 알아보도록 하자. 위에서 Batch layer는 하루에 한번 동작하는 것을 가정했는데, 이런 경우 오늘 날짜의 데이터에 대한 내용은 query를 통해 알 수 없게 된다. 이를 방지하기 위해 사용되는 것이 speed layer로 실시간 데이터를 사용자가 살펴볼 수 있게 하는 역할을 한다.

사용자는 Batch layer과 Speed layer을 사용하여 오늘 이전의 데이터와 오늘까지의 데이터를 함께 볼 수 있게 되고, 대용량의 데이터도 처리할 수 있게 된다.

Serving layer

마지막으로 Serving layer에 대해서 살펴보도록 하자. Serving layer은 앞서 Batch layer, Speed layer에 저장되어 있는 결과를 보기 위해 사용되는 것으로 사용자가 실제로 connection을 하여 데이터를 보는 곳이라고 생각하면 된다.

사용 가능 컴포넌트

마지막으로 각각의 layer에서 사용할 수 있는 hadoop 컴포넌트들을 살펴보도록 하자.

Batch layer

  • Hadoop MapReduce
  • Spark
  • Hive
  • Spark SQL

Speed layer

  • Spark Streaming
  • Flink

Serving layer

  • HBase
  • Druid

위에 언급된 컴포넌트들이 아닌 다른 컴포넌트들도 사용이 가능하며, 일반적으로 생각되는 것들만 기술하였다.

 

람다 아키텍처를 사용하는데 가장 크게 고민해야할 부분은 Batch layer과 Speed layer에서 어떤 것을 사용할지에 대한 여부인 것 같다 두 데이터를 서로 join하여 한번에 보여줄 수 있어야 하는 요구사항이 존재하기 때문에 이를 해결하지 않으면 실시간 데이터와 배치 데이터 둘 중 하나의 데이터 밖에 볼 수 없게 될 것 이다.

 

참고자료

https://bcho.tistory.com/984

https://jhleed.tistory.com/122

https://gyrfalcon.tistory.com/entry/%EB%9E%8C%EB%8B%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-Lambda-Architecture

http://wiki.hash.kr/index.php/%EB%9E%8C%EB%8B%A4_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98

http://lambda-architecture.net/

'BigData' 카테고리의 다른 글

sqoop이란 ?  (0) 2021.05.18
Kudu란?  (0) 2021.05.08
빅데이터 처리 과정  (0) 2020.12.18
빅데이터의 정의  (0) 2020.06.24
Nifi에서 Hive3 연결하기  (0) 2020.03.31
Comments