⭐ Plogramming/BigData

Chapter 1. 하둡 소개 및 환경

김진한

1. 하둡이란?

  • 하둡은 방대한 양의 데이터를 처리하는 플랫폼이다.
  • 하둡의 핵심:  HDFS(데이터 저장),  얀(프로세싱 프레임워크)

 

2. 하둡 특징

  • 대용량 처리 능력: 파일 사이즈가 크고, 하둡 클러스터로 백만개 이상 저장 가능
  • 장애 허용: 데이터를 다수의 서버에 복사한다.
  • 높은 장애 대응력: 얀이나 HDFS는 디스크가 작동하지 않아도 계속 데이터 복사 업무를 수행한다.
  • 데이터 스트리밍 액세서: 목차를 다는 것처럼 배치 프로세싱을 위한 스트리밍 액세스
  • 간단한 데이터 일관성 모델: WORM(Wite Once Read Many access model)

 

3. 클러스터 컴퓨팅과 하둡 클러스터

  • 클러스터 컴퓨팅
    • 여러 대의 컴퓨터를 하나의 시스템으로 연결하여 하나의 큰 컴퓨터처럼 동작하도록 구성하는 기술
    • 데이터 블록들을 여러 벌 만들어 각각 다른 랙에 있는 서버에 저장
    • 데이터 블록은 여러 청크로 나뉘어 클러스트 전반에 복사
    • 큰 작업을 작은 단위의 작업들로 나누는 것
    • 작은 단위의 작업들이 실패했을 때 다른 노드에서 쉽게 다시 실행 가능
  •  하둡 클러스터 구성요소
    • 마스터 노드(서버): 하둡 FW 운영하는 데몬 실행
    • 워커 노드: 스토리지(HDFS) & 프로세싱(YARN) 담당
    • 엣지 서버: 하둡 클러스터에 접근하는 어플리케이션 실행하는 서버들
    • 관계형 DB: 하이브, 스쿱 같은 FW 메타데이터 저장
    • FW 위한 전용 서버: 카프카, 스톰 등
  • HDFS과 맵리듀스의 조합
    • 다수의 서버에 걸쳐 데이터를 복제하는 HDFS와 프로그램 모델을 이용해 데이터를 처리하는 맵리듀스를 조합해서 사용
    • 큰 스케일의 컴퓨팅 가능 -> HW 오류로 인한 데이터 손실 방지
    • 저렴한 환경 시스템
    • 네트워크 부담 감소 -> IO를 같은 랙 또는 로컬디스크로 제한
      • 맵리듀스 작업을 HDFS 데이턱 저장된 노드로 작업 스케줄을 조정

 

4. 하둡 생태계

 

6. 분산형 데이터 처리

  • 맵리듀스
    • 하둡의 데이터 프로세싱 엔진
    • 프레임워크가 맵과 리듀스 기능을 제외한 모든 프로세싱 로직을 맡아 처리해주기 때문에 맵리듀스 프레임워크를 이용해 병렬 분산 애플리케이션을 작성할 때 로직이 단순해짐
  • 아파치 스파크
    • 고성능 분산 컴퓨팅 프레임워크로, api를 제공
    • HDFS가 데이터 스토리지로 사용되고 얀이 컴퓨팅 프레임워크로 사용되는 하둡 클러스터에서 스파크 잡을 동작시킬 수 있다
    • 인메모리 스토리지 모드오 효율적인 장애 복구 능력 보유
  • 아파치 하이브
    • HBase와 달리 데이터베이스가 아니며, 프로그램 작성 필요없이 HDFS 데이터를 사용할 수 있음
    • HiveQL(선언식 언어) -> 결과로 맵리듀스 잡을 생성
  • 아파치 피그
    • 데이터 프로세싱을 윟나 고수준 프레임워크
    • 스크립트 언어 피그 라틴(절차식 언어)
    • 다양한 타입의 데이터 연산을 사용할 때 좋음
    • 전형적인 ETL 프로세싱에 이상적인 툴

 

7. 데이터 통합

  • 아파치 스쿱
  • 아파치 플룸
  • 아파치 카프카
    • 병렬 로딩 후 실시간 데이터 소비를 클러스터로 분할해줌 -> 오프라인, 온라인 스트리밍 데이터 처리를 결합
    • 메시징 시스템과 유사
  • 이 외에도 엘라스틱서치/키바나 스택은 낮은 수준의 로그 분석에 유용하고 검색 분석에도 유용

 

8. 하둡 관리의 핵심 영역

  • 클러스터 스토리지 관리
    • hdfs에 저장
    • 밸런서 툴을 사용해 데이터 균형을 유지
    • 스냅샷을 만들어 두어 안전하게 보관
  • 클러스터 리소스 할당
    • 페어 스케줄러 : 장기간에 걸쳐 모든 애플리케이션이 리소스를 균등하게 배분받게 함
    • 리소스 큐를 활용해 큐들 사이에서 리소스를 공유
  • 하둡 태스크 스케줄링
    • 스파크, 맵리듀스 등의 잡을 사용해 저장한 대용량 데이터를 처리
    • 우지: 고확장성의 스케줄링 프레임워크로 상호의존적인 잡들을 실행하게 함
  • 하둡 데이터 보안
    • 일반적으로 커버로스를 사용

'⭐ Plogramming > BigData' 카테고리의 다른 글

분산 클러스터를 위한 하둡 시스템  (0) 2023.07.16
Apache Flink란?  (0) 2023.07.14
TimeWindow란  (1) 2023.07.13
Chpater 3. 하둡 클러스터 생성 및 환경 설정  (0) 2023.07.08
Chapter 2. 하둡 아키텍쳐  (0) 2023.07.02