하둡 등장배경

  1. The Google File System 논문 에서 분산파일 시스템에 관한 내용
  2. MapReduce: Simplified Data Processing on Large Cluster 에서 분산컴퓨팅 시스템 제시
  3. Nutch라는 오픈소스 검색엔진의 하부 프로젝트로 구체적인 시작
  4. 하둡의 등장:  2006년에 아파치 톱레벨 별개 프로젝트로 떨어져나옴

하둡이란?

1. 하둡은 커뮤디티 하드웨어를 활용한 대규모 데이터를 분산 저장하고 처리하는 오픈 소스 소프트웨어 플랫폼.

2. 다수의 노드로 구성된 클러스터 시스템이 마치 하나의 거대한 컴퓨터처럼 동작
3. Hadoop Distributed File System (HDFS)를 통해 데이터를 분산 저장하며, MapReduce를 사용하여 분산 컴퓨팅을 수행.
4. 비용 효율적인 하드웨어를 활용하여 안정적으로 데이터를 저장하고, 병렬 처리를 통해 대용량 데이터셋을 효과적처리.
5. 다양한 산업 분야에서 대용량 데이터 처리 및 분석에 활용

 

하둡의 발전

  • 하둡 1.0은 HDFS위에 MapReduce라는 분산컴퓨팅 시스템이 도는 구조
  • MapReduce 위에서 pig, hive, presto 등 다양한 컴퓨팅 언어들이 만들어짐

  • 하둡 2.0 :  하둡은 YARN이란 이름의 분산처리 시스템위에서 동작하는 애플리케이션이 됨
  • Spark은 YARN위에서 애플리케이션 레이어로 실행

 

HDFS-분산파일 시스템

  • 데이터를 블록단위로 나눠 저장(블록 크기는 128MB)
  • 이 블록들은 Fault tolerance를 보장하기 위해 각각 3군데에 중복으로 저장됨
    + Fault tolerance : 시스템이 하나 이상의 컴포넌트나 서비스의 장애 또는 실패에 대해 견딜 수 있는 능력
  • 하둡 2.0에서는 내임노드의 이중화가 지원되며, Active와 Standby 두 노드가 존재
    + Active에 문제가 생기면 Standby가 내임노트 역할을 함
  • 두 노드 사이에는 공유된 edit log가 존재하며, 이를 통해 지속적인 데이터 일관성을 유지
  • 또한, Secondary 내임노드도 여전히 존재하여 데이터의 신뢰성과 안정성을 제공

 

MapReduce : 분산 컴퓨팅 시스템

  • 하둡 1.0 버전에서는 하나의 잡 트래커(Job Tracker)와 다수의 태스크 트래커(Task Tracker)로 구성되어 있다.
  • 잡 트래커는 작업을 분할하고 다수의 태스크 트래커에게 할당. 각 태스크 트래커에서는 병렬로 작업을 처리.
  • 이 시점의 하둡은 MapReduce만을 지원하며, 제너럴한(일반적인) 시스템이 아니었습니다.
  • 다시 말해, 하둡 1.0은 주로 대용량 데이터 처리를 위한 특화된 환경으로 사용되었으며, 일반적인 용도의 다양한 작업을 수행하는 데에는 적합하지 않았습니다.

'하둡,spark' 카테고리의 다른 글

하둡 설치 +맵리듀스(wordcount) 실습  (0) 2024.01.18
MapReduce(맵리듀스) 프로그래밍  (0) 2024.01.17
YARN  (0) 2024.01.16
빅데이터 기초  (0) 2024.01.15
하둡의 등장과, spark로의 흐름  (0) 2024.01.15

빅데이터

  • 정의1 : 서버 한대로 처리할 수 없는 규모의 데이터
  • 분산환경에서는 scale-up(사양증가)를 하다가  scale-out을 하는게 일반적.
    + 분산환경 : 여러 컴퓨터 또는 서버가 네트워크를 통해 연결되어 작업을 협력적으로 수행하는 환경

 

  • 정의2 : 기존의 소프트웨어(오라클,mysql)로는 처리할 수 없는 규모의 데이터
  • 오라클,mysql,pandas로 처리할 데이터가 너무크면  spark를 사용
  • 정의3 : 4V (Volume, Velocity, Variety, Varecity)
    Volume: 데이터의 크기가 대용량?
    Velocity: 데이터의 처리 속도가 중요?
    Variety: 구조화/비구조화 데이터 둘다?
    Veracity: 데이터의 품질이 좋은지?

빅데이터 예

  • 빅데이터(디바이스데이터) 예 : 모바일디바이스, 스마트tv, 각종센서 데이터, 네트워킹디바이스
  • 빅데이터(웹) 예 : 웹페이지(위키 및 기타사 이트), 사용자행동정보(검색어, 클릭정보)

빅데이터처리 특징

  • 큰 데이터를 손실없이 보관할 방법 및 스토리지가 필요
    방법1. 비구조화 데이터를 보관 : 이런 비구조화 데이터의 등장으로 SQL 만으로 불가능해진다.
    방법2. 큰 데이터 저장이 가능한 분산 파일 시스템이 필요
  • 처리 시간이 오래걸림
    방법1. 병렬 처리가 가능한 분산 컴퓨팅 시스템이 필요.
    방법2. 비구조화 데이터를 처리할수 있는 방법을 활용

 

대용량 분산 시스템이란?

  • 분산 환경 : 1대 혹은 그 이상의 서버로 구성됨
    +분산 파일 시스템과 분산 컴퓨팅 시스템을 포함하는 개념
  • Fault Tolerance : 소수의 서버가 고장나도 동작해야함
  • scale out 가능성 : 확장이 용이해야한다.

 

결론 : 하둡이 필요

'하둡,spark' 카테고리의 다른 글

하둡 설치 +맵리듀스(wordcount) 실습  (0) 2024.01.18
MapReduce(맵리듀스) 프로그래밍  (0) 2024.01.17
YARN  (0) 2024.01.16
하둡 기초  (0) 2024.01.15
하둡의 등장과, spark로의 흐름  (0) 2024.01.15

하둡과 spark로 흐름 요약

  1. 대용량 데이터 처리를 위한 오픈소스 기술인 하둡이 등장하면서 데이터 처리 방식이 혁신되었습니다.
  2. 하둡은 분산 파일 시스템과 분산 컴퓨팅 시스템으로 구성되어 있으며, 핵심 구성 요소로는 HDFS와 맵리듀스/YARN이 있습니다.
  3.  맵리듀스 프로그래밍은 제약이 많아 데이터 처리가 어려웠고, 이로 인해 SQL이 다시 주목받게 되었습니다.
    +맵리듀스의 제약 : 병렬 처리를 위해 데이터를 키-값 쌍으로 변환해야 한다. 이로 인해 복잡한 작업을 수행하기가 어려워지고, 비즈니스 로직을 표현하는 데에도 한계가 있다. 또한 맵리듀스는 반복적인 계산을 표현하기에는 적합하지 않아, 반복이 많은 작업에서 효율성이 떨어진다.

  4.  SQL은 데이터 처리를 보다 직관적으로 수행할 수 있도록 도와주는 장점을 가지고 있습니다.
  5.  최근에는 Spark가 대세로 떠오르고 있는데, 이는 대용량 데이터의 분산 컴퓨팅을 위한 기술로 평가받고 있습니다.
  6.  Spark는 Pandas와 Scikit Learn을 강화시킨 것으로 볼 수 있어, 강력한 성능을 자랑합니다.
  7. 뿐만 아니라, SQL 쿼리를 지원하며 스트림 데이터 처리와 그래프 처리도 가능합니다.
  8. Spark은 데이터 처리에 있어 다양한 작업에 효과적으로 대응할 수 있는 다재다능한 기술로 인정받고 있습니다.
  9. 이는 기존의 맵리듀스 프로그래밍의 한계를 극복하고 보다 효율적인 데이터 처리를 가능케 합니다.
  10. 따라서 Spark는 현대의 데이터 처리 환경에서 중요한 위치를 차지하고 있습니다.

'하둡,spark' 카테고리의 다른 글

하둡 설치 +맵리듀스(wordcount) 실습  (0) 2024.01.18
MapReduce(맵리듀스) 프로그래밍  (0) 2024.01.17
YARN  (0) 2024.01.16
하둡 기초  (0) 2024.01.15
빅데이터 기초  (0) 2024.01.15

+ Recent posts