오늘부터는 대망의, 데이터 엔지니어링 파일럿 프로젝트를 진행 할 것이다!
이번 스마트카 파일럿 프로젝트에 대해 간단히 설명하겠다.
이번 프로젝트는 인프런의 강의를 참고하여, 데이터 수집부터 적재 & 처리 및 탐색 & 분석 및 응용작업까지 진행해 보는 프로젝트다.
직접 대규모 처리 프로세스를 구현해보기 전, 이 강의를 통해 파일럿 프로젝트를 수행해보려 한다.
인프런 강의는 아래와 같다.
🔥 이전까지의 프로젝트와 이 프로젝트의 차이점?
지금까지는 데이터의 수집과 적재에서는 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. 데이터셋 종류
파일럿 프로젝트 데이터셋은 다음과같다.
- 스마트카 상태 정보 데이터셋 - 일단위 Batch 데이터
- 스마트카 운전자 운행 데이터셋 - 초단위(실시간) Real-Time 데이터
- 스마트카 마스터 데이터셋 - 운전자의 프로파일 정보. 요구사항 1, 2 수행 시 관련 분석 데이터셋 만들 때 활용
- 스마트카 물품 구매 이력 데이터 - 스마트카 운전자가 차량 내 스마트 스크린 통해 쇼핑몰에서 구입한 차량 물품 구매목록 데이터셋. 요구사항 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를 고려하며, 빅데이터 엔지니어링&분석 환경을 구축할 것이다.
개요를 공부해본 뒤 느낀 점?
이렇게 파일럿 프로젝트에 대한 개요를 정리해보았는데, 벌써부터 프로젝트를 해보고 싶다는 생각이 든다.
이처럼 앎의 깊이를 넓혀가는 것은 참 재밌다. 그리고 그것을 활용해 성과를 낸다는 것은 그 무엇보다도 매력있다고 생각한다. 또 며칠 잠 못자며 프로젝트하게 생겼다. 두근두근. 화이팅!!
'개인(팀) 프로젝트 > 기타 프로젝트 & 활동' 카테고리의 다른 글
04-1. 클라우데라 매니저 HDFS 에러 해결 (0) | 2021.06.16 |
---|---|
04. 수집 요구사항 정의 + HDFS, 주키퍼 설치 및 실행 (0) | 2021.06.16 |
03. 로그 시뮬레이터 설치 (0) | 2021.06.15 |
02. 하둡(Hadoop) 활용한 스마트카 파일럿 프로젝트_VM 통합환경 구성 (0) | 2021.06.04 |
01. 전주시 빅데이터 분석 공모전 - 우수상 수상! (0) | 2021.06.01 |