하둡(Hadoop)은 안정적이고 확장성이 높은 저장 및 분석 플랫폼을 제공한다.
범용 하드웨어에서 실행되고 오픈소스이다.
SQL이나 RDBMS와는 다르고 코드는 대부분 JAVA로 작성된다는 것이 특징이다.
크기가 큰 데이터 셋을 디스크에 나눠서 저장하고 공유하게 되면 빠른 분석이 가능하고 분석 작업에도 탁월한 효과를 지니게 된다. 하지만 여러 개의 디스크를 병렬로 쓰거나 읽기 위해선 몇몇 문제를 고려해야 한다.
- 하드웨어 장애
- 데이터 손실을 막기 위한 방법은 데이터를 여러 곳에 복제하는 방법 - RAID 방식
- HDFS와는 조금 다른 방법을 사용한다.
- 분할된 데이터를 분석 과정에서 다시 결합
- 많은 분산 시스템이 다중 출처의 데이터를 병합하는 기능을 제공하지만, 정합성이 안 지켜지는 경우가 많다.
- 맵리듀스의 경우 키-값 쌍의 계산을 변환한 추상화된 프로그래밍 모델을 제공한다.
- 맵리듀스도 HDFS처럼 안정성을 내장하고 일괄 처리 시스템이라는 특징을 가지고 있다.
관계형 데이터베이스 관리 시스템
-> 여러 개의 디스크를 가진 DB를 이용하여 대규모 분석을 수행할 수 없는 이유
-> 탐색 시간은 전송 속도보다 발전이 느리기 때문
맵리듀스 vs RDBMS
RDBMS | 맵리듀스(Mapreduce) | |
데이터 크기 | GB | PB |
접근 방식 | 대화형, 일괄 처리 방식 | 일괄 처리 방식 |
변경 | 여러 번 읽고 쓰기 | 한 번 쓰고 여러 번 읽기 |
트랜잭션 | ACID | X |
구조 | 쓰기 기준 스키마 | 읽기 기준 스키마 |
무결성 | 높음 | 낮음 |
확장성 | 비선형 | 선형 |
최근 들어 하둡 시스템의 하이브는 맵리듀스에서 벗어나 대화형을 발전하고 있으며, 트랜잭션 같은 기능을 추가하고 있기에 전통적인 RDBMS와 닮아가고 있다.
RDBMS는 정형 데이터를 처리할 수 있고 하둡은 비정형, 반정형 데이터를 잘 처리 할 수 있다.
그리드 컴퓨팅
그리드 컴퓨팅은 메시지 전달 인터페이스와 같은 API를 이용하여 수년간 대규모 데이터를 처리하고 있다. 클러스터 머신 여러 대에 작업을 분산시키는 방식을 사용한다.
-> 계산 중심의 작업에서는 좋지만, 대용량일 떄 네트워크 대역폭으로 인한 병목 현상 발생
-> 이러한 문제점을 하둡을 통해 해결
하둡은 가능하면 계산 노드를 데이터를 함께 배치하여 데이터가 로컬에 있어 접근이 빠르다.
이를 데이터 지역성이라고 하며 데이터 환경에서 중요한 장점이다.
자발적 컴퓨팅
자발적 컴퓨팅은 청크(chunk)라는 작업 단위로 해결할 문제들을 분리하고, 이를 분석하기 위해 전 세계로 컴퓨터를 보낸다. SETI@home의 경우 작업 단위는 0.35MB의 전파망원경 데이터고, 집에 있는 컴퓨터로는 며칠이 걸린다.
SETI@home은 표면적으로 맵리듀스와 유사해 보이지만 차이가 있다. SETI@home의 문제는 CPU 중심적이고, 작업 단위를 전송하는 시간이 계산시간보다 빠르기에 전 세계의 컴퓨터에서 돌리는게 유리하다.
맵리듀스의 경우 높은 네트워크 대역폭을 가진 단일 데이터 센터에 있는 신뢰성 높은 전용 하드웨어에서 짧은 시간에 실행할 수 있도록 설계되었다.
이에 반면 SETI@home의 경우 연결 속도가 가변적이고 데이터 지역성이 없는 신뢰할 수 없는 머신에서 오랜시간이 걸린다.
SETI@home이란?
- SETI 프로그램 의 일환으로 분산 컴퓨팅 기술을 활용하여 인터넷에 연결된 컴퓨터들을 이용해 외계 지적 생명체를 탐구하는 프로젝트
출처:
책의 내용을 참조
'4학년 공부 과정 > 분산 데이터베이스' 카테고리의 다른 글
하둡(Hadoop) - NoSQL Database, HBase - 1 (2) | 2023.05.24 |
---|---|
하둡(Hadoop) - 네임노드, 세컨더리 네임노드, 데이터노드 및 장애대응 (0) | 2023.04.28 |
하둡(Hadoop) - 하둡 분산 파일시스템(HDFS) (0) | 2023.03.12 |
하둡(Hadoop) - 맵 리듀스 (0) | 2023.03.11 |
하둡(Hadoop)에 관하여 (0) | 2023.03.11 |