대용량 데이터를 분산 처리할 수 있는 자바 기반의 프레임워크. hdfs라는 하둡 분산 파일 시스템과 map reduce가 큰 특징임.
HDFS
하둡의 DATA STORAGE에 해당하는 것으로 데이터는 block 단위로 분할되어 Slave Node에 저장된다. 데이터 관리를 위해 Master Node에서는 NameNode daemon이 실행되고, 각 Slave Node에서는 DataNode Daemon이 실행된다. 즉, HDFS는 Slave node에 있는 로컬 파일시스템 상에 만들어지는 오버레이 파일 시스템인 것이다. HDFS상에 배치된 파일은 128이나 256MB크기의 블록으로 분할되어 각 Slave Node에 저장되지만, 각 블록데이터는 로컬 파일시스템의 파일로 취급된다. 데이터 접근에 대해서는 기록은 1회만하고 이후에는 읽기만 허용하며 데이터 변경이 불가능하고 랜덤읽기는 금지된다.
- NameNode : file system namespace를 관리하고 data에 대한 metadata를 저장한다. 파일열기 닫기 이름변경등의 작업을 처리하고 블록을 DataNode와 매핑하는 작업을 한다.
- DataNode : 클라이언트가 요구하는 read, write를 file system상에서 처리한다. NameNode의 요구를 처리하고, block의 생성, 삭제, 복제의 작업을 한다.
MAP REDUCE
대규모 데이터 집합을 처리하기위한 프로그래밍 모델이다. 큰 파일을 블럭단위로 나누는 Map작업을 수행하고 이후 Reduce작업으로 데이터 처리를 수행하게 됩니다. Map작업과 Reduce작업이 완료되면 HDFS에 Write됩니다.
- Map 작업은 Input 데이터를 가공하여 데이터 연관성있는 데이터들로 분류하는 작업. key-value 형태로 분류
- Reduce 작업은 Map에서 출력된 데이터에서 중복데이터를 제거하고 원하는 데이터를 추출하는 작업. 중간 산추룰을 정렬하고 하나로 합쳐 Reduce Task로 생성 및 Reduce 함수로 전달
hadoop과 zookeeper가 너무 비슷해보이는데 이 둘은 무슨 차이가 있는거지..?
Hadoop adopted Zookeeper as well starting with version 2.0. The purpose of Zookeeper is cluster management. 이런 답변도 있고 다른 답변도 읽어보면 하둡은 hdfs같은 분산 처리 환경 자체에 무게를 둔 개념같고 zookeeper는 분산 처리 환경을 매니징해주는것에 더 무게를 둔 개념같다.
하둡과 주키퍼가 함께 쓰이는 이유
분산 시스템에서 여러 어플리케이션이 동시에 한 오퍼레이션을 수행할때 생기는 레이스 컨디션이나 동시에 공유된 자원을 요청할때 생기는 데드락같은 문제, 혹은 분산 시스템에서 생기는 데이터 불일치 문제들을 해결하기 위해 zookeeper가 쓰인다.
'PaaS > Data' 카테고리의 다른 글
Kibana 7.10 올리기 및 Elastic Search 연동 (0) | 2022.07.15 |
---|---|
ElasticSearch 7.10 Cluster 올리기 (0) | 2022.07.15 |
(NoSQL) MongoDB 구성요소 (0) | 2022.04.15 |
(RDBMS) 인덱스에 대해서 (0) | 2022.01.25 |
(Oralce DB) 유용한 쿼리들 (0) | 2021.07.26 |