Hadoop
High Availability Distributed Object Oriented Platform (고가용성 분산형 객체 지향적 플랫폼)
객체 지향적인 작업을 병렬로 분산시켜 고가용성을 확보를 가능하게 하는 기술
Apache Hadoop은 Java 기반의 오픈 소스로, 간단한 프로그래밍 모듈을 사용해 컴퓨터 클러스터에 대규모 데이터 세트를 분산 저장 및 처리한다. 단일 컴퓨터에서 수천 대의 클러스터까지 확장할 수 있도록 설계되었다.
HDFS와 MapReduce 프레임워크로 시작되었으나 현재는 빅데이터 처리 및 분석을 위한 플랫폼 중 표준에 가깝게 발전했다.
구성 요소
Hadoop은 MapReduce, HDFS, YARN, Common Utility로 구성되어 있다.
HDFS
Hadoop Distributed File System (하둡 분산형 파일 시스템)
스키마를 미리 정의하지 않고도 애플리케이션 데이터에 높은 처리량으로 액세스 할 수 있게 해주는 분산 파일 시스템
YARN (Yet Another Resource Negotiator)
컴퓨팅 리소스를 관리하고 이를 사용하여 사용자의 애플리케이션을 스케쥴링하는 리소스 관리 플랫폼
Hadoop 시스템에서 스케쥴링 및 리소스 할당을 수행한다.
MapReduce
대규모 데이터 처리를 위한 프로그래밍 모델
분산 및 병렬 계산 알고리즘을 사용해 처리 로직을 전달할 수 있게 해주며, 큰 데이터 세트를 관리할 수 있는 하나의 세트로 변환하는 애플리케이션을 작성하는 데 유용하다.
Common Utility
다른 Hadoop 모듈이 사용 및 공유하는 라이브러리와 유틸리티
장단점
장점
- 내결함성 : 데이터가 클러스터 전체에 복제되기 때문에 디스크, 노드 등에서 장애가 발생해도 데이터를 쉽게 복구할 수 있다.
- 오픈소스 : 라이센스 비용을 절감할 수 있다.
- 비용 절감 : 테라바이트 당 데이터 저잘 비용이 다른 플랫폼보다 저렴하다.
단점
- 복잡성 : 최종 사용자가 다루기에는 복잡하고 어렵다. 상당한 지식과 리소스가 있어야 소프트웨어를 설치하고 유지할 수 있다.
- 성능 : 디스크로부터 읽기, 쓰기를 자주 실행하여 연산을 수행하는데 Spark처럼 인메모리 프레임워크에 비해 느리고 비효율적일 수 있다.
참고 문서
https://www.databricks.com/kr/glossary/hadoop
https://www.oreilly.com/library/view/hadoop-essentials/9781784396688/ch02s05.html
https://butter-shower.tistory.com/71
https://cloud.google.com/learn/what-is-hadoop?hl=ko