21
1
장
빅데이터 분석하기
다루는 사람 대부분은
HPC
High
-
Performance
Computing
(고성능 컴퓨팅)라는 클러스터 컴퓨팅 환경
에 익숙하다.
PyData
나
R
은 확장성이 부족해 문제라면,
HPC
에서는 추상화 수준이 지나치게
낮아서 발생하는 나쁜 사용성이 문제다. 예컨대
DNA
염기서열로 가득 찬 커다란 파일을 병렬
처리하려면 수작업으로 일일이 작은 파일로 나눈 후, 각각에 대한 처리 작업을 클러스터의 스
케줄러에 하나씩 등록해야 한다. 일부에서 오류가 발생하면 작업자는 그 오류를 직접 찾아내서
수동으로 재입력해야 한다. 분석하다 보면 전체 데이터셋의 정렬과 같은 데이터 전체를 사용하
는 작업을 수행해야 할 때가 있다. 이 경우에는 커다란 데이터 모두를 하나의 노드에 밀어 넣거
나
MPI
와 같은 저수준 분산 프레임워크에 의존해야 하는데, 그러려면
C
언어와 분산 네트워크
환경을 잘 이해하고 있어야 한다.
또,
HPC
환경에 맞게 제작된 도구들은 저수준 저장소 모델로부터 인메모리
In
-
memory
데이터 모
델을 분리하기가 어려운 경우가 많다. 예를 들어 많은 도구가
POSIX
파일시스템의 단일 데이
터 스트림으로만 데이터를 읽을 수 있도록 만들어졌다. 이러한 도구는 병렬화하거나 데이터베
이스 같은 다른 종류의 백엔드 저장소를 사용하도록 변경하기가 쉽지 않다. 하둡 생태계의 요
즘 시스템들은 사용자가 클러스터 환경을 단일 컴퓨터 환경처럼 다룰 수 있도록 추상화해준다.
파일을 쪼개 여러 노드에 걸쳐 있는 저장소에 분산하고, ...