HDFS 데이터 저장소에는 RAID구성이 필요할까
· Version : HDFS
HDFS 클러스터에서 데이터노드 저장소 용도로 RAID(Redundant Array of Independent Disks)를 사용하면 이득이 있을까?
결론부터 이야기하면 이득이 없다. HDFS는 노드간에 복제하는 기능이 있어 RAID가 제공하는 중복성(redundancy)은 필요하지 않기 때문이다. 또한 성능 향상을 위해 흔히 사용하는 RAID 0 (Striping)은 모든 디스크에 DHFS 블록을 연속적으로 배열하는 HDFS의 JBOD (Just a Bunch of Disks)방식보다 느리다는 것이 밝혀졌다. 그 이유는 RAID 0의 읽기/쓰기 동작의 경우 RAID 배열에서 가장 느린 디스크의 속도에 의해 제한을 받기 때문이다. 반면 JBOD에서는 디스크 동작들이 독립적이며 이러한 동작들의 평균속도는 가장 느린 디스크보다 빠르다. 실제로 동일한 제조사의 동일 모델의 디스크여도 큰 편차를 보이는 경우가 있다. 또한 JBOD 환경에서는 디스크 하나가 고장날 HDFS는 고장난 디스크 없이도 계속해서 동작할 수 있지만 RAID는 하나의 디스크 고장이 전체 디스크 배열을 불능 상태로 만들 수 있다. 이 뜻한 RAID 0에서 디스크 한개의 불량이 노드 하나를 통째로 불능 상태로 만들 수 있다는 뜻이다.
그렇다면 HDFS에서 RAID는 정말 필요 없을까? 네임노드에는 RAID 1 (Mirroring)으로 구성하여 가용성을 높일 수 있다.
디스크 목록을 dfs.data.dir 매개변수에 전달하면 하둡은 사용 가능한 모든 디스크를 사용한다. 디스크가 오프라인 상태가 되면 사용가능 대상에서 제외한다. 그리고 제외된 디스크가 다시 사용가능한 상태가 되었는지 검사하지는 않는다.
Note : 하둡 시스템에 사용하는 메모리는 ECC 메모리를 사용하도록 한다. ECC 메모리가 아닌 경우 하듭 클러스터에서 체크섬 오류가 발생할 수 있다.
[참고자료]
- Setting up Disks for Hadoop : https://cwiki.apache.org/confluence/display/HADOOP2/DiskSetup
2020-06-07 / Sungwook Kang / http://sungwookkang.com
Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, HDFS, 하둡 파일 시스템, 하둡 RAID, 분산 처리, 분산 저장
'SW Engineering > Hadoop' 카테고리의 다른 글
Impala Connection refuse Error (0) | 2020.06.12 |
---|---|
Hive 데이터 타입 (0) | 2020.06.09 |
Hive에서 하둡(dfs)명령 실행 (0) | 2020.05.19 |
ZooKeeper 옵저버와 CLI (0) | 2020.05.19 |
Hive에서 쉘 명령 실행 (0) | 2020.05.18 |