[Hadoop] Overview of Hadoop, MapReduce

hwwwa·2023년 1월 3일
0

🐘 BigData Programming

목록 보기
1/6
post-thumbnail

Apache Hadoop

  • MapReduce programming model을 사용해 bigdata dataset의 분산 저장 및 처리하는 오픈소스 소프트웨어 프레임워크
  • 용량이 커지는 속도에 비해 io 속도가 따라가지 못함 → 하둡으로 해결
  • 범용 하드웨어로 구축된 컴퓨터 클러스터로 구성됨
  • 하드웨어 장애는 흔히 발생 → 프레임워크에서 자동으로 처리
  • 분석 시간이 단축됨
  • Problem: 하드웨어 고장의 확률, 여러 드라이브에서의 출력물을 하나로 결합 시의 오류
    • Solution: HDFS, MapReduce, ...
      • HDFS: 여러 개의 파일 시스템으로 이루어져있고 네트워크로 연결되어 있음
      • 적당히 쿼리를 날려 MapReduce

MapReduce

  • 클러스터에서 병렬 분산 알고리즘을 사용해 대용량 dataset을 처리하고 생성하는 프로그래밍 모델
  • Map과 Reduce로 구성됨
    • Map: 일반적으로 필터링 및 정렬 수행
    • Reduce: 일반적으로 요약 작업을 수행
    • split input file에서 읽어서 각 각 mapper로 읽어와서 reducer에서 취합해서 outputfile로 저장.
  • Programming model
  • Execution environmnet
  • Software package

MapReduce & distributed storage

  • What is hidden to achieve this(프로그래머가 알 필요 없는 것들):
    • 데이터 파티셔닝, 배치 및 복제
    • Computation 배치 (및 복제)
    • 노드 수 (mappers / reducers)
  • Beyond Batch
    • Batch : 데이터를 모아서 한꺼번에 전송
    • MapReduce는 batch processing(일괄 처리) 시스템으로 trade-off를 제공
    • Interactive(대화형) SQL
      • 대화형 SQL은 MapReduce 대신 장기 실행 전용 데몬(임팔라)이나 컨테이너를 재사용하는(하이브) 분산 쿼리 엔진 사용
      • 대용량 데이터셋에 대한 확장성이 있으면서 Hadoop 기반의 SQL 쿼리 실행 시 빠른 응답 속도를 가짐
    • Iterative Processing(반복 처리) ex) machine learning
      • 머신러닝과 같은 다수의 알고리즘은 근본적으로 반복 연산을 함
      • 각 반복 단계마다 디스크에서 데이터를 불러오는 것 보다 메모리에 임시 작업 데이터셋을 보존하는 것이 더 효율적
      • MapReduce 아키텍처는 허용하지 않지만 Spark에서는 데이터셋 탐색 방식의 작업 허용
    • Streaming Processing(실시간 처리) ex) real time
      • Stom, Spark Streaming, Samza
      • 실시간으로 실행되고 경계가 없는 스트림 데이터를 분산 계산하여 그 결과를 하둡 저장소나 외부 시스템에 보낼 수 있음
    • Search
      • 하둡 클러스터에서 Solr 검색 플랫폼 실행 가능
      • 문서를 인덱싱하여 HDFS에 저장, HDFS에 저장된 인덱스를 기반으로 검색 쿼리 제공

2022-2 KHU 빅데이터프로그래밍 수업을 기반으로 작성하였습니다.

0개의 댓글