HDFS라는게 무엇인지 저번 포스팅에서 다뤘는데, 오늘은 HDFS의 목적에 대해서 알아보려고 한다.
HDFS의 목적
HDFS는 데이터 환경의 잦은 노드 실패에 대한 '소프트웨어 레벨의 해결'이 주요 목표로 설계되었다.
HDFS의 존재이유는 단순하게 말하면 데이터를 관리하기 위해 어떠한 식으로 관리를 해야 데이터를 온전히 그리고 빠른 속도로 안정적으로 처리할 수 있느냐가 아닐까 싶다.
크게 세 부분으로 목적을 정의하자면 다음과 같다.
- 대규모 데이터세트 관리 - 대규모 데이터를 처리하는 애플리케이션을 관리
- 결함 감지 - 상용 하드웨어 수가 많아 결함을 효과적으로 스캔하고 감지
- 하드웨어 효율성 - 대규모 데이터세트의 네트워크 트래픽 감소, 처리속도 향상
HDFS의 사용 방법
앞선 포스팅에서 HDFS의 간단한 구성요소와 어떠한 역할을 했는지 알아보았고, 그 목적이 무엇인지도 짧게 알아보았다. 그렇다면 HDFS의 사용은 어떻게 하는 것일까?
마스터(Master)/슬레이브(Slave) 구조를 가진다라고 앞선 포스팅에서 설명했었다. 마스터 서버는 네임노드(NameNode), 슬레이브 서버는 데이터노드(DataNode)가 되었고, 기본적으로 네임노드 및 다른 데이터 노드와 함께 작동하고 상용 하드웨어 클러스터에서 작동하게 되며, 그 후 데이터 노드에 블록으로 분산하여 저장한다. 데이터 손실의 가능성을 줄이기 위한 방법으로 RAID에 관련된 포스팅을 한번 확인하면 좋을듯 싶다. ( https://yeornag.tistory.com/18 )
HDFS의 네임노드(NameNode)는 파일에 대한 엑세스 권한 (데이터의 읽기, 쓰기, 생성, 제거, 복제)을 제어하는데에 사용된다. 데이터노드(DataNode)는 작업을 시작하고 완료해야 하는지 여부를 확인하기 위해 네임노드(NameNode)와 지속적으로 통신을 주고 받게 된다. 결국, 네임노드를 통해서 데이터를 관리하는데 필요한 데이터노드들을 컨트롤 하게 되는 셈이다.
아래 표는 참고 자료로 사용한 곳에 정리되어있는 명령어를 가져와 보았다.
위에 명시된 명령어들은 CLI 환경에 익숙한 사람들이라면 쉽게 사용할 수 있을 것 같다.
HDFS 구성 요소
일단 HDFS의 구성요소를 알아보도록 하자.
- Hadoop HDFS - HDFS(Hadoop Distributed File System)은 하둡의 저장 단위.
- Hadoop MapReduce - Hadoop MapReduce은 하둡의 처리 단위입니다. 이 소프트웨어 프레임워크는 방대한 양의 데이터를 처리하는 애플리케이션을 작성하는 데 사용.
- Hadoop YARN - Hadoop YARN은 하둡의 리소스 관리 구성 요소. 배치, 스트림, 상호작용 및 그래프 처리를 위해 데이터를 처리 및 실행하며, 모든 데이터는 HDFS에 저장.
드디어 맵 리듀스와 얀이 등장했다. 그렇다면 무엇인지 일단 알고 가야 하지 않을까? 너무 포스팅 글들이 조잡해 질 것 같지만 충분히 알고 이해하고 넘어가야 할 것 같으니 맵 리듀스와 얀에 대해서 일단 알아보고 다음 글을 이어서 써보자.
레퍼런스:
https://www.databricks.com/kr/glossary/hadoop-distributed-file-system-hdfs
'Hadoop' 카테고리의 다른 글
HDFS 라는 것도 알아보자 (0) | 2023.09.19 |
---|---|
RAID ?? 이게 뭘까 (0) | 2023.09.18 |
Hadoop을 알아보자 (1) | 2023.09.17 |