인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

고준호님의 프로필 이미지
고준호

작성한 질문수

15일간의 빅데이터 파일럿 프로젝트

6.분석 파일럿 실행 4단계 - 01. 제플린으로 실시간 분석

인메모리 방식의 궁금증

작성

·

323

0

안녕하세요 평소 인메모리 방식에 대해 궁금증이 많은데요...
제플린에서 분석하기 위해 hdfs 파일을 업로드 하는데...
 
만약 대용량의 데이터를 olap 처럼 활용하기 위해 사용한다면.,..
어떤 식으로 데이터를 메모리에 보존하게 되나요?
 
사전에 적재해놓는 건인가요?
 
예를 들어 ms의 analysis service는 메모리에 대규모 데이터를 적재합니다. spark도 그런 형식으로 하는 것인지 아니면 hadoop file system을 메모리상에 올린뒤 그 뒤에 계속 작업을 진행 하는 것인지 문의드립니다.

답변 1

0

Big.D님의 프로필 이미지
Big.D
지식공유자

안녕하세요! 고준호님!

주신 질문을 보면 이미 정답의 반은 알고 계시네요...^^

Q. ms의 analysis service는 메모리에 대규모 데이터를 적재합니다. spark도 그런 형식으로 하는 것인지 아니면 hadoop file system을 메모리상에 올린뒤 그 뒤에 계속 작업을 진행 하는 것인지 문의드립니다.

A. 후자입니다. 

- 빅디 드림

고준호님의 프로필 이미지
고준호
질문자

그럼 최근에는 데이터 전처리를 스파크로도 많이 하는데 데이터 레이크 상의 빅데이터 처리 작업을 디스크에 적재하는 중간과정 없이 메모리에서 모두 작업한다는 말씀이시죠?

 

그러면 대규모 데이터 전처리 작업에서 얼마나 메모리가 필요한지는 어떤식으로 이해해야 할까요?

 

만약 온라인쇼핑몰에서 매일 10테라의 빅데이터가 쏟아지고 이걸 수파크로 전처리 한다고 생각했을 때 이 10테라의 데이터가 메모리에 어떤식으로 계산되고 적재될지.  .... 궁급합니다

Big.D님의 프로필 이미지
Big.D
지식공유자

네~ 10TB 파일로 어떤 전처리 작업을 하냐에 달려 있습니다.

예를들어 하둡의 얀위에서 실행되는 스파크를 가정 하고, 문제를 좀 단순화 해서 설명 드리자면..

 

데이터 노드가 10대이고, 1대당 128GB의 메모리가 장착 되어 있고,

이중 100GB 정도를 스파크가 사용 가능 하다고 할때, 총 1000GB(1TB)를 사용할 수 있고,

10TB의 파일은 10대의 데이터노드에 블럭 크기로 골고루 분산 저장 되어 있을테고,

10TB의 파일에서 VIP 고객만 추출 하는 작업이라면,

동시에 처리할 수 있는 컴퓨팅 파워는 오롯이 가용 메모리 1TB가 됨,

대략... 10대의 데이터 노드가 각각 100GB씩 처리하며 동시에 1TB를 처리하면서,

VIP 고객을 추출 하는 위 단계를 10번을 진행 하게 됩니다.

이때 추출된 VIP 고객 정보는 아주 작은 크기로 메모리에 올라 올테고 문제없이 완료 될 겁니다.

하지만 문제를 바꿔서 10TB 고객정보에서, 지역별로 그룹바이를 하고,

소득순위별로 정렬하는 작업이라면...최종 결과 데이터 크기도 줄지 않을 테고,

결국 10대의 데이터 노드가 시작과 동시에 1TB를 처리 하는데, 그룹바이/정렬 결과는 그대로 1TB가 되어 메모리에 올라오고, 가용 메모리 1TB를 모두 사용한 상태가 되어, 다음 작업을 진행 하기 위한 메모리 부족으로 실패하게 됩니다.

대규모 분산 병렬처리는 실행 환경에 따라 보다많은 복잡도와 변수들이 발생 하게 됩니다. 그래서 여러 시행 착오를 거치기도 합니다. ^^;;


- 빅디 드림

고준호님의 프로필 이미지
고준호

작성한 질문수

질문하기