Skip to content

[09-12] 하둡이란 무엇인가?  #6

@snaag

Description

@snaag

하둡이란 무엇인가?

스크린샷 2024-09-12 오후 8 47 06

Hadoop 이 뭘까

  • 대용량 데이터 저장/처리 위한 오픈소스
  • 엄청난 데이터들을 하나의 비싼 장비가 아닌, 200~500 만원대의 저렴한 컴퓨터들을 여러대 사용해서 처리하는 것
  • GFS 의 영향 받음

하둡이 내세운 새로운 관점

  • 과거에는 크기가 얼마던, 메모리 등으로 옮겨와서 한번에 처리 하는 식이었음 -> Computation 이 중요
  • 하둡은 옮기지않고, 데이터가 저장된 곳 에서 프로그램이 처리하는 방식임
    • (분산해서) 저장 담당 = HDFS
    • 데이터가 있는 곳에서 처리 되는 것 = MapReduce
    • 이 둘을 Hadoop Core 라고 함

Hadoop Core

  • 하둡 클러스터는 수백~수천개의 서버로 이루어져있음
  • Hadoop Core 는 아래 세 가지의 중요한 컴포넌트를 기반으로 함
  • Storage
    • HDFS (분산 파일 시스템)
    • 파일들은 하둡 클러스터에 분산 저장됨
  • 프로세싱
    • 분산된 데이터를 처리함
    • MapReduce
      • 프레임워크
      • Mapper 로 각각 분산되어있는 데이터를 처리 후, Reducer 에서 모아 연산을 처리함
      • 분산처리에 필요한 불필요한 작업들을 자동으로 처리함으로써, 개발자들은 신경쓰지 않아도 됨
    • Spark
      • MapReduce 작업을 디스크 기반이 아닌, 메모리 기반 (In-Memory) 으로 옮겨 고속화
  • 리소스 관리
    • YARN
      • Hadoop Cluster 를 구성하는 모든 서버의 CPU, 메모리 및 스토리지 용량을 파악함
      • 제출된 Hadoop Application 이 최적으로 수행할 수 있게 리소스 관리 할당

하둡의 빅데이터 처리 과정

스크린샷 2024-09-12 오후 10 34 39

데이터 추출 및 스토리지

  • HDFS 를 사용하여, 다양한 소스로부터 생성된 다양한 형식의 데이터를 하둡 클러스터로 모음
    • 데이터의 형식: RDBMS, Log 데이터, JSON 파일, 텍스트 파일, 이미지 파일 등등...
  • 이 때 Scoop, Flip 등을 이용하여 보다 쉽게 추출할 수 있음

데이터 스토리지

  • HDFS (Hadoop Distributed File System)
    • Hadoop core 의 컴포넌트 중 하나로, 메인 Storage 를 담당
    • 크고 경제적인 분산 스토리지
    • 64MB, 128MB 라는 대용량 블록 사용
    • 최소 3개의 복사본 사용
    • 성능 향상 및 안정성
  • Apache HBase (Apache 하둡 데이터베이스)
    • Hadoop 에서 실행되는 NoSQL 데이터베이스
    • 데이터의 사이즈에 따라 확장 가능한 (Scalable) 시스템
    • 테이블 하나가 수 천 개의 컬럼을 가질 수 있음
    • (?) Hadoop Core > Storage 에 왜 안속해있는겨? Apache 껀데

데이터 프로세싱 (MapReduce)

스크린샷 2024-09-12 오후 9 08 02
  • 오리지널 Hadoop 프레임워크로, HDFS 만 지원함
  • 기본적으로 Java 로 구현하나, Python 등도 가능
  • Map + Reduce
  • Map
    • 흩어져 있는 데이터를 Key, Value 의 형태로 연관성 있는 데이터로 묶는 작업
  • Reduce
    • Filtering 과 Sorting 을 거쳐 데이터를 추출, Map 화환 작업 중 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업
  • 데이터를 분산 해서 처리 하는 분산 프로그래밍 모델
  • 분산 처리 기술과 관련된 프레임워크를 의미함

데이터 프로세싱 (Apache Spark)

  • 대용량 데이터 처리를 지원하는 프로세싱 엔진
    • 대부분의 FileSystem 를 지원함 (cf. Hadoop MR)
  • In-Memory 기반 분산 고성능 클러스터 플랫폼
  • 하둡의 MR 작업을 디스크 기반이 아닌, 메모리 기반 (In-Memory) 으로 옮겨 고속화
  • '하둡을 메모리 기반으로 옮긴 것이다' 라고 이해하면 쉬움

데이터 분석: Apache Hive

  • 쿼리 엔진이라고 부르기도 함
    • 빅 데이터 환경에서 SQL과 유사한 방식으로 데이터를 쉽게 조회하고 분석할 수 있게 해주기 때문
  • HiveQL (SQL과 유사) 로 쿼리를 작성하면 MapReduce 작업으로 변환함
  • 따라서 사용자는 복잡한 Java MapReduce 프로그램을 직접 작성하지 않고도, 빅 데이터를 쉽게 처리할 수 있음

데이터 검색: Cloudera Search

  • 하둡에서 사용되는 텍스트 기반의 데이터 검색 엔진
  • 주로 Cloudera의 Hadoop 사용자를 대상으로 하며, 빅 데이터 세트에서 실시간으로 검색하고 분석하는 데 특화
    • 쉽게 Hadoop 데이터에 접근할 수 있음

데이터 검색: Apache Solr

  • Apache Lucene을 기반으로 한 오픈 소스 검색 플랫폼
  • 다양한 환경에서 사용될 수 있고, 다른 데이터 소스와의 통합을 위해 다양한 커뮤니티 리소스와 플러그인을 제공
    • ex. Hue 를 통해 웹 인터페이스 제공
    • 일반적인 검색 애플리케이션에 널리 사용되며, 웹사이트, 기업 내 검색 솔루션 등 다양한 목적으로 활용

추가 질문 /w GPT4

  • Hadoop Core > Storage 에 왜 안속해있는겨? Apache 껀데
    • Spark 는 보다 범용적인 용도 로 다양한 곳에서 사용되기 때문인듯함
  • 하둡의 클러스터란?
    • 하둡에서 '클러스터'는 여러 대의 컴퓨터(또는 노드)가 네트워크를 통해 연결되어 하나의 기능을 수행하도록 구성된 전체 시스템을 의미
  • 하둡의 클러스터는 여러개인가? 아니면 하나인가?
    • 하둡 시스템은 보통 하나의 큰 클러스터로 구성되는 것이 일반적

출처

후기

하완가의 MapReduce 를 딱 폈는데요, 졸음이 쏟아지더라구요
아 이건 내 수준이 아니라서 조는구나 하는 느낌이 와서 대학강의를 들었습니다
듣다보니 뭔가 학교다닐때 들었던거같은데 ㅎ..; 하는 생각이 얼핏 나면서 그때도 졸았던 기억이 났습니다 ㅎ..
아무튼 과제없이 대학강의를 들으니까 마음이 참 편했습니다

다음에는 Hadoop Cluster 로 찾아뵙겠슴다 :ㅇ

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions