ch.1 하둡과의 만남

MINK·2022년 12월 6일
0

하둡완벽가이드

목록 보기
1/1
post-thumbnail

PART 1.하둡기초

CHAPTER 1 하둡과의 만남

1. 1 데이터

  • 기계 로그, RFID 리더, 센서 네트워크, 차량 GPS궤적, 소매 거래 등은 데이터의 폭증을 이끌고 있음.
  • 다양한 출처의 정보를 융합할 수 있으면 지금까지 예상하거나 상상할 수 없었던 새로운 프로그램을 만들 수 있음.
  • 좋은 소식은 빅데이터가 주변에 널려 있다는 것이고, 나쁜 소식은 그것을 저장하고 분석하는 일이 매우 어렵다는 것

1.2 데이터 저장소와 분석

  • 하드 디스크의 용량은 지난 수년간 엄청나게 증가했지만 데이터를 읽는 속도는 그에 미치지 못했다.
  • 여러 개의 디스크에 데이터를 병렬로 쓰면 속도는 빨라지지만 몇 가지 문제가 발생한다.
    • 첫 번째 하드웨어 장애
      • 많은 하드웨어를 사용할수록 장애가 발생할 확률도 높아짐
    • 두 번째 분할된 데이터를 대부분의 분석 작업에서 어떤 식으로든 결합해야 함
      • 많은 분산 시스템이 다중 출처의 데이터를 병합하는 기능을 제공하지만, 정합성을 지키는 것은 매우 어려운 도전 과제
  • 하둡은 안정적이고 확장성이 높은 저장 및 분석 플랫폼을 제공한다.
  • 하둡은 범용 하드웨어에서 실행되고 오픈 소스이기 때문에 매우 저렴하다.

1.3 전체 데이터에 질의하기

  • 한 번의 쿼리로 전체나 상당한 규모의 데이터셋을 처리하는 것이 맵리듀스의 장점
  • 맵리듀스는 일괄 질의 처리기
  • 맵리듀스는 전체 데이터 셋을 대상으로 비정형 쿼리를 수행하고 합리적인 시간 내에 그 결과를 보여주는 능력을 지니고있음

1.4 일괄 처리를 넘어서

  • 기본적으로 일괄 처리 시스템이라는 것이 맵리듀스의 강점이고 대화형 분석에는 적합하진 않다.
  1. 하둡이란?

    • 최초에는 일괄 처리를 위해 만들어졌으나 지금은 이를 벗어나 진화하고 있다.

    • HDFS와 맵리듀스만이 아닌 수많은 에코시스템 프로젝트를 지칭하는 말이다.

    • 하둡 에코시스템은 분산 컴퓨팅과 대규모 데이터 처리를 위한 기반 시설이다.

      • 에코시스템의 대부분은 오픈 소스 소프트웨어 프로젝트 커뮤니티의 지원을 담당
      • HTTP서버(프로젝트 이름으로 시작하는 도메인을 가짐.(EX_pig.apache.org))를 제공하는 아파치 소프트웨어 재단에서 관리
  1. HBase(온라인 접근을 지원하는 첫 번째 구성요소)

    • HDFS를 기본 저장소로 하는 키-값 저장소
    • 개별 행에 대한 온라인 읽기/쓰기와 산적한 데이터를 읽고 쓰는 일괄 처리를 둘 다 지원
    • 애플리케이션을 구축하는데 좋은 솔루션
  1. YARN

    • 클러스터 자원 관리 시스템
    • 맵리듀스뿐만 아니라 어떤 분산 프로그램도 하둡 클러스터에 저장된 데이터를 처리할 수 있게 해준다.

1.5 다른 시스템과의 비교

  1. 관계형 데이터베이스 관리 시스템(RDBMS)
    • 여러 개의 디스크를 가진 데이터베이스를 이용하여 대규모 분석을 수행할 순 없는건가?

      • 답 : '탐색 시간은 전송 속도보다 발전이 더디다'
    • 데이터베이스에 있는 일부 레코드를 변경하는 작업은 전통적인 B-트리가 적합

      • 데이터 베이스의 상당 부분을 변경할 때 B-트리는 데이터베이스를 재구성하기 위해 Sort/Merge를 사용해야 하므로 맵리듀스보다 효율적이지 못하다.
      • B-트리란?
        • 관계형 데이터베이스에서 사용되는 자료 구조로, 탐색을 수행하는 속도에 제한이 있다.
    • RDBMS와 맵리듀스의 비교

      전통적인 RDBMS맵리듀스
      데이터 크기기가바이트페타바이트
      접근 방식대화형과 일괄 처리 방식일괄 처리 방식
      변경여러 번 읽고 쓰기한 번 쓰고 여러 번 읽기
      트랜잭션ACID없음
      구조쓰기 기준 스키마읽기 기준 스키마
      무결성높음낮음
      확장성비선형선형
    • RDBMS는 상대적으로 작은 양의 데이터를 낮은 지연 시간에 추출하고 변경하기 위해 데이터셋을 색인하기 때문에 특정 쿼리와 데이터 변경에 적합

    • 하둡과 RDBMS은 데이터셋 내부에서 처리되는 구조의 양이 다르다

      • 정형 데이터
        • RDBMS영역
        • XML문서나 미리 정의된 특정 스키마를 가진 데이터베이스 테이블과 같이 형식이 정의된 항목으로 구조화
      • 반정형 데이터
        • 정형 데이터에 비해 스키마가 유연하거나 생략
        • 데이터 구조에 대한 최소한의 규칙만 있으면 됌<ex. 스프레드시트와같은 데이터>
      • 비정형 데이터
        • 내부 구조 없음<ex. 이미지나 텍스트 파일>
      • 읽기 시점 스키마
        • 유연성을 제공
        • 데이터를 불러오는 비용이 많이드는 단계도 피할 수 있음
    • 하둡은 단순히 파일만 복사하면 됨

    • 관계형 데이터는 무결성을 유지하고 중복을 제거하기 위해 주기적으로 정규화

      • 맵리듀스는 웹서버 로그와 같이 정규화되지 않은 모든 종류의 로그파일 분석에 적합
    • 맵리듀스는 선형적으로 확장 할 수 있는 프로그래밍 모델

  1. 그리딩 컴퓨팅
    • HPC(고성능 컴퓨터)과 메세지 전달 인터페이스(MPI)와 같은 API를 이용하여 수년간 대규모 데이터 처리

    • HPC는 SAN으로 연결된 공유 파일시스템에 접근하는 클러스터 머신 여러 대에 작업을 분산

      • SAN(Storage Area Network)은 스토리지 디바이스의 공유 풀을 상호 연결하여 여러 서버에 제공하는 독립적인 전용 고속 네트워크
      • 이러한 방식은 계산 중심의 작업에서는 좋은 결과를 얻지만 계산 노드들이 대용량 데이터에 접근해야 할 때는 네트워크 대역폭에 병목현상 발생
      • 이 때 계산을 수행할 노드들이 빈둥거리게 되는 문제가 발생
    • 하둡 즉 맵리듀스는 계산 노드에 데이터를 함께 배치

      • 데이터가 로컬에 있기 때문에 접근도 빠를 수밖에 없음
      • 데이터 지역성으로 알려진 이러한 특성이 바로 하둡에서 데이터 처리의 핵심이고, 좋은 성능을 낼 수 있는 이유
    • 대규모 분산 컴퓨팅에서 수많은 프로세스를 조율하는 것은 엄청난 과제

      • 가장 어려운 점은 원격 프로세스가 실패했는지 정상인지 알 수 없을 때와 같은 부분
      • 실패에 현명하게 대처하는 것
      • 전체적인 계산의 진행을 이어나가는 것
        • 맵리듀스가 태스크 간의 상호 의존성이 없는 비공유아키텍처이기 때문에 맵리듀스와 같은 분산 처리 프레임워크에서 실패한 태스크에대해 고민하지 않아도 됨
        • 맵리듀스는 실패한 리듀서를 재실행하는데 주력<맵x>
  1. 자발적 컴퓨팅
    • 사람들은 처음 맵리듀스가 SETI@home(외계지적생명체 탐사프로젝트)와 비슷하다고 생각함
    • 그 외에도 가장 큰 소수를 찾는 인터넷 메르센 소수 찾기 프로젝트와 Folding@home<단백질 접힘과 질병고의 관게> 프로젝트 등
    • SETI@home은 표면적으로는 멥리듀스와 유사해 보이지만 큰 차이가 있다.
      • SETI@home의 문제는 CPU중심적
      • 작업 단위를 전송하는 시간이 계산하는 시간보다 빠르기 때문에 전 세계의 수십만개의 컴퓨터 위에서 실행하기 적합하게 만듬
      • 자발적인 자원자들은 대역폭이 아니라 CPU 사이클을 기중하는 것
    • 맵리듀스는 매우 높은 네트워크 대역폭을 가진 단일 데이터 센터에 있는 신뢰성 높은 전용 하드웨어에서 수 분 또는 수 시간 내에 잡을 실행할 수 있도록 설계
    • 이와 달리, SETI@home은 연결 속도가 가변적이고 데이터 지역성이 없는 신뢰할 수 없는 머신에서 오랜 시간이 걸리는 계산을 실행

1.6 아파치 하둡의 간략한 역사

  • Apache Lucene의 창시자인 더그커팅에 의해 시작됨

  • 오픈소스 웹 검색엔진인 Apache Nutch에서 탄생하였고 Lucene프로젝트의 일부였음 2002년에 시작됨

  • 2003년 구글 GFS에서 아이디어를 얻음

  • 2006년 더그 커팅이 야후에 합류하고 하둡 기술을 적용함

  • 2008년 기술적인 성공과 활발한 커뮤니티를 인정받아 아파치 최고수준의 프로젝트로 등록됨

    -> 야후 뿐만 아니라 다양한 회사에서 적용함

  • 하둡은 더그 커팅 아들이 노란 코끼리인형에게 지어준 이름

참조 링크

하둡과의 만남

하둡 완벽 가이드

profile
parkminkyu velog

0개의 댓글