개인(팀) 프로젝트/기타 프로젝트 & 활동

01. 하둡(Hadoop) 활용한 스마트카 파일럿 프로젝트_개요

한소희DE 2021. 6. 4. 01:06

오늘부터는 대망의, 데이터 엔지니어링 파일럿 프로젝트를 진행 할 것이다!

 

이번 스마트카 파일럿 프로젝트에 대해 간단히 설명하겠다.
이번 프로젝트는 인프런의 강의를 참고하여, 데이터 수집부터 적재 & 처리 및 탐색 & 분석 및 응용작업까지 진행해 보는 프로젝트다. 

직접 대규모 처리 프로세스를 구현해보기 전, 이 강의를 통해 파일럿 프로젝트를 수행해보려 한다.

인프런 강의는 아래와 같다.

 

 

15일간의 빅데이터 파일럿 프로젝트 - 인프런 | 강의

AI에 생명력을 불어 넣는 빅데이터의 모든 과정들을 파일럿 프로젝트 형식으로 진행 하며, 완성된 빅데이터 플랫폼 위에서 다양한 데이터 탐색과 머신(딥)러닝 분석을 수행 합니다., 15일에 끝장

www.inflearn.com

 

 

🔥 이전까지의 프로젝트와 이 프로젝트의 차이점?

지금까지는 데이터의 수집과 적재에서는 Ad-hoc 방식으로 실습을 해왔다면, 이제는 대량의 데이터를 Batch처리 & Stream처리하여 취급할 것이다.

👉🏻 이를 통해, 하둡의 실제 구현 방법을 익히고, 해상물류 대시보드 구현 프로젝트 때 하둡을 응용/활용할 것이다.

 

 

빅데이터를 지탱하는 기술 책을 읽으며, 실습을 해보고 싶다고 생각해왔는데, 참 다행스럽게도 최근 인프런에서 관련 강의가 개설되어 얼마나 기쁜지 모른다. 그럼 프로젝트에 대해서 설명해보도록 하겠다.

 

 

 

 

 

 

 

 

목차

주제 및 도메인 이해

핵심 요구사항

데이터셋 종류

레이어 개요

빅데이터 파일럿 아키텍처 이해

 


 

 

01. 주제 및 도메인 이해

주제는 스마트카 프로젝트이다.


 

주제까지 엔지소희 맞춤형이다. 스마트카에 평소 관심이 있었기 때문.

스마트카에는 정말 많은 데이터가 있다. 자동차가 어떻게 움직이는지 & 운전자가 어떻게 대응하는지 등의 모든 데이터가 수집이 될 수 있다.

 

이처럼 스마트카에는 수백개의 iot센서가 존재하는데, 해당 데이터들을 수집,적재,탐색,분석을 진행하여 운전자에게 다양한 제공 서비스를 제공하는 것을 목적으로 프로젝트를 진행해 볼 것이다.

 


 

02. 핵심 요구사항

 

2-1. 차량 로그 배치 처리

 

차량의 다양한 장치로부터 발생하는 로그파일을 수집해 기능별 상태를 점검할 것이다.

 

우리는 총 100대의 시범 스마트카 운행 차량에서 나온 대용량 로그 파일을 수집할 것이다.

 

로그파일 수집 특징
데이터 생성 주기 3초
데이터 수집 주기 24시간마다 1회, 월 단위 수집
데이터 양 1대 당 1MB
데이터 형태 반정형

 

 

 

2-2. 운전자 로그 실시간 처리

 

운전자의 운행 정보가 담긴 로그를 실시간 수집해서 분석해 볼 것이다.

 

이것 또한 100대의 시범 운행 차량에서 나오는 실시간 로그 파일을 수집 및 분석한다.

 

로그 실시간 데이터 수집 특징 - 분석 및 처리를 실시간으로 수행
데이터 생성 주기 1초
데이터 수집 주기 1초 (이벤트가 발생하자마자 발생한 데이터를 바로 수집)
데이터 양 1대당 4KB
데이터 형태 반정형

 

정리하자면, 스마트카 로그 시뮬레이터에서 차량 상태 정보 3초 간격으로 일당 100MB(100대이므로)로 월단위 수집한다. 그리고 운전자 운행 정보 1초 간격으로 발생한 데이터를 초당 400KB로 생성(100대이므로)되어 1초당 수집(=실시간 수집)된다.

 

이런 데이터가 수집 적재 처리탐색 분석응용(데이터마이닝) 단계를 거칠 수 있도록 아키텍처를 설계할 예정이다.

 

물론 실제 프로젝트는 더 많은 데이터가 필요로 하겠지만, 파일럿 프로젝트는 대규모 빅데이터 환경인데, 투자비가 생성되기에 부담이 있으므로 개인용 PC로 가능한 정도로 파일럿 프로젝트를 진행하며 빅데이터 관련 핵심 기술을 활용할 수 있는 아키텍처를 설계할 것이다. 따라서 2개 VM으로 이 요구사항을 만족하는 100개의 스마트카 데이터로 빅데이터 파일럿 프로젝트를 수행해보도록 하겠다.

 

03. 데이터셋 종류

파일럿 프로젝트 데이터셋은 다음과같다.

  1. 스마트카 상태 정보 데이터셋 - 일단위 Batch 데이터
  1. 스마트카 운전자 운행 데이터셋 - 초단위(실시간) Real-Time 데이터
  1. 스마트카 마스터 데이터셋 - 운전자의 프로파일 정보. 요구사항 1, 2 수행 시 관련 분석 데이터셋 만들 때 활용
  1. 스마트카 물품 구매 이력 데이터 - 스마트카 운전자가 차량 내 스마트 스크린 통해 쇼핑몰에서 구입한 차량 물품 구매목록 데이터셋. 요구사항 1, 2 수행 시 관련 분석 데이터셋 만들 때 활용

 

04. 레이어 개요

이제 각 수집, 적재, 처리.탐색, 분석.응용 레이어에 대한 기본적인 사용 툴을 알아보자. 해당 툴의 개념은 각 레이어 실습을 할 때마다 개념을 정의해 둘 것이니 추후 포스팅을 반드시 참고하자.

 

4-1. 수집 레이어 개요

플럼 카프카 스톰.에스퍼로 구성된다. 이때 데이터의 성격에 따라 수집되는 방식에 차이가 있다.

  • 100MB 이상의 대규모 Batch 데이터 플럼을 거쳐, 적재영역(하둡)으로 바로 이동
  • 이벤트(실시간) 데이터는, 플럼을 커쳐 카프카 → 스톰.에스퍼 → HBase or 레디스에 적재

 

🔥 이때 데이터 적재 시 툴의 차이가 나는 이유가 무엇일까?
실시간 데이터는 배치 데이터와는 달리, 버퍼링과 ※트랜잭션이 있을 수 있는데, 그것을 방지하기 위해 카프카를 활용한다.
하둡과 HBase 나눠서 적재하는 이유는 찾아서 기록해두기!

 

🔥 트랜잭션 관리란? 
어플리케이션과 유저로부터의 요구를 관리하는 것

예를 들면 은행 거래와 같다. 은행 송금 시 서버 장애로 A통장에서 B통장으로 출금은 됐는데 B통장에 입금내역이 없는 경우는 발생하면 안 된다. 따라서 이럴 때는 A통장에서 B통장으로 잔고가 이동한 것을 모두 확인 한 뒤에야 Commit (그렇지 않으면 Rollback)을 해줘야 한다. 이러한 요구사항에서의 충돌이 없도록 관리하는 것이 트랜잭션 관리다.

 

 

4-2. 적재 레이어 개요

플럼과 스톰이 수집한 데이터를 각각 하둡 & HBase or 레디스로 적재된다.

대용량 Batch 데이터(하둡), 실시간성 메시지 데이터(HBase or 레디스) 처리 방법이 다르므로, 두 가지 방법론을 공부할 것이다. 특히, 실시간 데이터 처리에서는 스톰과 에스퍼를 결합하여 이벤트 프로세싱 데이터를 처리할 것이다. (특정 이벤트가 발생하면 레디스로만 이동시키는 파이프라인도 시도해 볼 것이다.)

 

 

4-3. 처리 탐색 레이어 개요

분리저장된 데이터들을 갖고, DW 그리고 DM을 만들 것이다. 이때의 모든 과정은 자동화가 필수인데 그 때, 우지 하이브 스파크 휴가 필요하다.

 

 

4-4. 분석.응용 레이어 개요

다양한 도구 통해 탐색적 분석을 진행할 것이다. 임팔라.제플린 & 머하웃.스파크ML & R.텐서플로 를 이용한다. 하둡의 분산 클러스터에서 워크로드를 생성해 분석하는 방법과 데이터를 출력해 분석하는 R 방법이 있다.

 

 

 

✔ 앞서 언급했듯, 각 툴의 개념과 활용에 대한 것은 각 레이어 설명 포스팅에 정리해 둘 예정이다. 각 툴에 대한 설명 혹은 기능에 대해 더 자세히 알고 싶다면, 다음 개별 포스팅들을 참고하자!

 

05. 빅데이터 파일럿 아키텍처 이해

이제까지 빅데이터 설계 개요에 대해 익혔으니, 아키텍처 설계 방법론에 대해 모색해 볼 필요가 있다.

이때 빅데이터 하드웨어 아키텍처는 3V 관점에서 설계해야 한다는 것을 잊지 말자.

 

3V 는 규모 다양성 속도를 의미한다.


  • 규모: 얼마나 많은 데이터 발생하는가
  • 다양성: 어람나 다양한 데이터 발생하는가
  • 속도: 얼마나 자주 데이터 발생하는가

 

우리는 이와 같은 3V를 고려하며, 빅데이터 엔지니어링&분석 환경을 구축할 것이다.

 

 

 

개요를 공부해본 뒤 느낀 점?

이렇게 파일럿 프로젝트에 대한 개요를 정리해보았는데, 벌써부터 프로젝트를 해보고 싶다는 생각이 든다.
이처럼 앎의 깊이를 넓혀가는 것은 참 재밌다. 그리고 그것을 활용해 성과를 낸다는 것은 그 무엇보다도 매력있다고 생각한다. 또 며칠 잠 못자며 프로젝트하게 생겼다. 두근두근. 화이팅!!