'hdfs'에 해당되는 글 1건

최초 작성일 : 2013/06/05 13:02 


HDFS (하둡 분산 파일 시스템)은 다음의 사항을 고려하여 설계되었다.


1. 대용량의 파일 : 수백 Mb에서 수백 Tb 혹은 Pb급 이상을 대상으로 함

2. WORM (Write Once Read Many) : 커다란 원본으로부터 데이터 셋을 만들어 그
              데이터 셋을 분석한다. 그러기 위해서는 전체 파일을 읽어야 한다.

3. 범용 하드웨어 : 고성능의 신뢰도 높은 서버가 아닌 다수의 범용 머신으로 구성된
              클러스터에서의 실행을 고려하였다.


========================================================
위 내용에 대해서는 여러 번 반복되었기에 간단하게 적고 넘어간다.

그러나 간혹 'Big'이라는 용어의 함정에 빠져 잊기 쉬운 부분들이 있다.
나 역시 BigData 관련 공부를 시작하면서 문서는 물론이거니와 이미지나 음악 및 동여상 등
개인이 소유하게되는 파일 역시 수적으로나 양적으로 점점 더 커지고 있는 상황에서
이러한 분산 파일 시스템을 개인용으로 만들어보면 어떨까 하는 생각을 해봤다.
기존의 RAID 시스템에 비해 오히려 하드웨어적으로 더 저렴하게 구현을 할 수 있을 것
같았다.

그러나 다음의 내용을 확인하고서는 조용히 생각을 접었다.
(하지만 아직 가능성은 모색 중이다.)
========================================================

HDFS가 적당하지 않은 분야

1. 빠른 데이터 액세스 / 빠른 응답 시간이 필요한 경우
 - 앞서도 나왔지만 HDFS는 대용량의 파일을 처리하기 위한 시스템이고 대체로 배치성
   작업에 적합하다.

2. 많은 수의 작은 파일들에 대한 처리
 - 네임노드는 파일들의 메타 데이터를 관리하며 이를 디스크가 아닌 메모리에 저장하여 처리한다.
   따라서 파일의 수가 많아질수록 메모리에 대한 부하가 가중되며 아직도 디스크에 비해
   가격이 비싼 메모리 관리에 문제가 발생할 수 있으며 파일의 수가 비약적으로 많아질
   경우 하드웨어에서 지원 가능한 메모리 용량을 넘어설 수도 있는 문제이다.

3. 다중 writer나 임의의 파일 수정
 - 역시 앞서 나왔듯이 HDFS는 WORM 상태를 고려하여 설계되었다.
   예를 들어 HDFS는 파일을 블럭으로 나눈 후 서로 다른 노드에 저장을 한다.
   뿐만 아니라 필요한 수 만큼의 복제본을 생성한다. 만일 이 파일에 대한 수정을
   허용한다면 파일의 수정이 생길 때마다 각 노드이 해당 블럭을 찾고 수정된 위치에
   변경 사항을 반영해야 하며 이러한 작업을 복제본에까지 적용해야 한다(혹은 변경된
   블럭들을 다시 복제해야 한다).
   얼마나 비효울적인가...

***
즉, 수십Gb에 달하는 대용량의 파일의 존재할지라도 아직도 개인의 디스크에는
많은 수의 작은 파일들이 대부분의 저장공간을 차지하고 있을 것이다.
또한 파일 성격에 따라 수시로 변경되는 파일도 많을뿐더러 이러한 파일들을
빨리 읽혀야 한다.

하지만 동영상을 중심으로하는 대용량 파일들만을 고래해보았을 때는HDFS의
기본 설계에 얼추 들어맞는 것 같다. 대용량이면서 디스크에 저장된 이후 수정이 일어날
일도 없다. 다만 빠른 접근만이 문제가 될 것이다.

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^