ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Hadoop
    빅데이터 분석 2021. 9. 8. 16:41

    하둡(Hadoop)

    대용량의 데이터를 분산 처리 할 수 있는 자바 기반 프레임워크

     

    특징

    • 대용량 데이터 처리
    • 스케일 아웃
      • 비슷한 성능의 리눅스 서버를 병렬로 연결하여 확장하는 방식
    • 스케일 업
      • 성능을 올리는 것이다.
    • 병렬 처리를 가능하게 하는 단순한 데이터 모델과 프로그래밍 모델
      • 프로그래밍 모델 : 맵리듀스
    • 데이터가 있는 곳으로 코드가 이동한다.
      • 이유: 데이터가 방대해서, 코드가 이동하는 것이 속도가 더 빠르다, 병목 형상을 줄일 수 있다.
    • 소프트웨어적 장애 허용성(fault tolerance)을 구현된다.
      • 복제본을 두는 방식(data replication)으로 해결한다.
    • low latency보다 high throughput(높은 처리량)을 지원한다.

    단점

    • 셋업과 사용이 쉽지 않다.
    • 소규모이거나 대용량 처리가 필요 없다면 하둡은 부적절하다
    • 실시간 분석이나 대화형 쿼리에는 적절하지 않는다. -> 스파크

    HDFS, YARN

    HDFS: 분산되어 있는 여러 서버의 로컬 디스크에 파일을 나누어 저장하고 접근하는 시스템

    YARN: 잡 스케줄링과 클러스터 자원관리 프레임워크

    하둡 아키텍처

    하둡 클러스터

    HDFS(분산 파일 시스템)과 YARN(클러스터 리소스 매니저)를 기반으로 하는 하둡 소프웨어를 사용하는 컴퓨터들의 집합체

    백그라운드에서 실행되는 데몬 프로세스들을 통해 스토리지와 프로세싱 역할을 수행

    마스터-슬레이브 아키텍처

    마스터 노드 : 슬레이브 노드 관리

    슬레이브 노드(Worker Node): 데이터 저장 및 처리

      HDFS YARN
    마스터 NameNode ResourceManager
    슬레이브 DataNode NodeManger

    하둡 분산 모드 환경 설정

    SSH 설정

    • 하둡은 서버들 간 SSH(Secure Shell) 프로토콜을 이용하여 통신
    • 마스터 노드에서 공개키와 비밀키를 생성한 후 SSH에 인증키로 등록
      • 공개키 인증으로 암호 없이 워커 노드에 접속이 가능하도록 해야 함
    • 네임 노드의 SSH 공개키를 ssh-copy-id 명령어를 사용하여 각 데이터 노드로 전송

    MapReduce 프로그래밍

    데이터 모델 : 모든 레코드를 <키, 밸류> 쌍으로 변환하여 처리

    병렬도가 굉장히 높은 단순 작업 : wordcloud

    동작 방식

    2-단계 디자인: Map, Reduce

    Map 단계 : 입력 데이터를 하나씩 읽어서 데이터를 변형

    • 데이터를 한 줄씩 읽어서 사용자가 <키, 밸류>에 맵 함수를 실행하여 새로운 <키, 밸류>를 출력하고, 맵의 출력키를 기준으로 정렬

    Reduce 단계 : 맵 출력 데이터를 집계

    • 사용자가 정의한 리듀스 함수를 레코드 단위로 실행
    • 리듀스 함수는 입력키별로 입력값의 목록을 집계하여 <키, 밸류>를 만든다

    Shuffle 단계 : 노드들 간 데이터 교환이 이루어지는 Map과 Reduce 태수쿠우ㅏ 중간과정

    EX) WordCount

    리듀서가 1개와 2개

    • 여기서 키는 분석하는 데 영향을 주지 않기 때문에, 키의 값은 시작 바이트가 어느 위치에 있는지 보고 결정한다.
    • Map에서 나온 <키, 밸류>에서 밸류는 검색된 빈도를 뜻한다.

     

    '빅데이터 분석' 카테고리의 다른 글

    데이터 전처리  (0) 2021.11.15
    분류  (0) 2021.10.27
    머신러닝  (0) 2021.10.13
    pandas  (0) 2021.10.12
    Numpy  (0) 2021.10.04

    댓글

Designed by Tistory.