동혼 2020. 3. 21. 19:38

하둡 (hadoop)

그전 : 저장된 곳에서 파일을 가져와서 처리하고 저장된 곳에 저장시킴 

하둡 : 저장된 곳에서 처리하고 저장시킴

 

1 정의

- 정형데이터, 비정형 데이터를 분산 처리하는 자바 오픈소스 빅데이터 솔루션

- 여러대의 컴퓨터 클러스터에서 대규모 데이터를 분산 처리를 할 수 있기 해줌 

 

2. 구성

 (1) HDFS - 분산 저장 / 여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장한다

 (2) YARN - 병렬처리를 위한 클러스터 자원 관리 및 스케줄링 담당

 (3) MapReduce - 분산 저장된 데이터를 병렬 처리하는 분산 처리 모듈

 

 

3. 특징

- 단일 서버에서 수천대의 머신으로 확장 가능

- 데이터를 분산처리 하는 수를 늘리거나 줄임으로 기업이 원하는 크기의 저장소를 가질 수 있다.

 

http://blog.naver.com/acornedu/220957220179

 

[빅데이터] 하둡(Hadoop)이란?

빅데이터분석이 쉬워진것은 하둡(Hadoop)이 개발되면서 부터이다. 하둡은 대용량 데이터를 적은비용으로 ...

blog.naver.com

 

 

하둡 에코시스템

1 정의

- 하둡을 이루고 있는 다양한 서브 프로젝트들의 모임 

- 하둡 코어 프로젝트 : HDFS , MapReduce 

- 하둡 서브 프로젝트 : 나머지 프로젝트들 -> 데이터 마이닝, 수집, 분석 등을 수행

 

 

 

 

 

 

 

 

 

 

 

HDFS ( Hadoop Distributed File System ) - 대용량 파일 저장

1. 정의

- 여러대의 서버에 대용량 데이터를 분산하여 저장하고, 각 서버에서 동시에 데이터를 처리하는 방식 

 

2. 특징 

- RDBMS(MsSQL, mysql 등) 을 대치하는게 아닌 보완 함

+ 트랜잭션이나 무결성을 보장해야하는 데이터 처리에는 RDBMS를 사용함 / 그외 대용량 데이터를 저장하고 처리

 

- HDFS는 데이터를 저장하면, 다수의 노드에 복제 데이터도 함께 저장해서 데이터 유실을 방지

- HDFS에 파일을 저장하거나, 저장된 파일을 조회하려면 스트리밍 방식으로 데이터에 접근해야 함.

- 한번 저장한 데이터는 수정할 수 없고, 읽기만 가능하게 해서 데이터 무결성을 유지.

      (2.0 알파버전부터는 저장된 파일에 append가 가능하게 됨)

- 데이터 수정은 불가능 하지만 파일이동, 삭제, 복사할 수 있는 인터페이스를 제공함.

 

https://www.opentutorials.org/course/2908/17055

 

하둡(Hadoop) 소개 및 기본 구성요소 설명 - 내가 아는 모든 IT ~

하둡이란? 분산 환경에서 빅 데이터를 저장하고 처리할 수 있는 자바 기반의 오픈 소스 프레임 워크. 구성요소 1. 하둡 분산형 파일시스템(Hadoop Distributed FileSystem, HDFS) 하둡 네트워크에 연결된 기기에 데이터를 저장하는 분산형 파일시스템 특징 :     1. HDFS는 데이터를 저장하면, 다수의 노드에 복제 데이터도 함께 저장해서 데이터 유실을 방지    2. HDFS에 파일을 저장하거나, 저장된 파일을 조회하려면 스트리밍

www.opentutorials.org

 

 

 

 

 

맵리듀스 (mapreduce) - 대용량 파일 처리

1. 정의 

- 대용량 데이터 분산 처리

- 분산 프로그래밍 모델

- 병렬처리 지원 (병행성) 내포

- 각 서버에서 데이터 분석처리하는 분산 병렬처리

- 흩어져있는 데이터를 수직화 하여 그 데이터를 각각의 종류 별로 모으고 (map) ,

filtering 과 sorting 을 거쳐 데이터를 뽑아내는 (reduce)

분산 처리 기술과 관련된 프레임워크 

 

 

2. 의미 & 기능 

- map + reduce = map 단계와 reduce 단계로 처리과정을 나누어 작업

- 여러 노드에 태스크를 분배하는 방법 

- 맵리듀스의 job 들은 jobTradker 에 의해 제어됨

(마스터 노드에 존재 , 잡트래커가 클러스터의 다른 노드들에 맵과 리듀스 task 를 할당)

 

 

(1) map :

- 흩어진 데이터를 key, value 형태의 연관성있는 데이터 분류로 묶음 

- 필요한 분석 대상만 추출. 잘못된 레코드 제거

 

(2) reduce :

- map 된 데이터를 키 기준으로 맵카운트 / 벨류 통합 / 평균추출 등 작업을 통해 데이터를 추출하는 작업

- 분석으로 원하는 값 구함 

 

 

3. 과정 

데이터 입력 > 데이터 split >  Map ( key-value 값 생성) > 셔플 (같은 키를 묶음 / 맵과 리듀스의 중간 단계) > 리듀스 (커스터마이징작업 / 레코드 가공 및 작업 ) > 출력

 

4. 사용이유 & 장점 

- 데이터 처리 프로세스 단순화

- key  값을 이용한 정렬과 간단한 그룹화

- 비정형 데이터 모델을 유연하게 지원 가능

- 저장 구조와 독립적

 

5. 단점

- 기존 DBMS 가 제공하는 스키마, 질의 언어, 인덱스 등의 기능 지원 x 

- 복잡한 연산이 어렵다

- 성능이 낮아 map 진행시 reduce는 시작될 수 없다

 

+

https://cskstory.tistory.com/entry/%EB%A7%B5%EB%A6%AC%EB%93%80%EC%8A%A4-MapReduce-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

맵/리듀스 (Map/Reduce) 이해하기

빅데이터를 접하기 시작하면서 자주듣게 되는 용어가 있습니다. 맵/리듀스 라는 용어인데요, MR이라고도 많이 쓰구요, 빅데이터 처리에는 늘 맵리듀스 개념이 들어가죠. 그럼, 빅데이터 처리의 기본이되는 맵리듀..

cskstory.tistory.com

+

http://www.dbguide.net/db.db?cmd=view&boardUid=187336&boardConfigUid=9&categoryUid=216&boardIdx=158&boardStep=1

 

데이터 전문가 지식포털 DBGuide.net

지금까지는 데이터베이스에 데이터를 저장하고 이를 SQL 쿼리로 분석했다. 그렇기 때문에 데이터가 트랙잭션 데이터인지, 분석과 리포트 데이터인지에 따라 DBMS가 달라져야만 했다. 바야흐로 모든 기기가 인터넷에 연결되는 사물인터넷 시대가 도래했다. 사물인터넷에서 발생하는 데이터는 흔히 말하는 대용량 데이터이기 때문에 전통적인 DBMS에서 저장ㆍ처리하기에는 한계가 따를 수 있다. 분산 환경은 시스템의 성능과 저장 측면에서 발달해왔다. 정보를 빠르게 처리하는

www.dbguide.net

 

 

 

YARN

1. 정의

- 하둡 1.0 의 리소스 관리, 메모리할당을 하던 job tracker 대체하여 나온 리소스 관리자.

- job tracker 의 기능을 분리하여 자원관리와 애플리케이션 라이프 사이클 관리를 담당한다.

 

2. 구성

(1) Resource Manager 

-전체 클러스터에서 가용한 모든 시스템 자원을 관리

-리소스 분배한다.

(2) Node Manager

- Map Reduce 의 기능을 담당

- container을 실행하고 container dml Life Cycle 을 관리함

(3) Container 

- Node Manager 가 실행되는 시스템 자원(CPU, Memory, Disk 등 )을 표현

- 하나의 서버에는 여러대의 container 이 실행가능하다.

- 어플리케이션 실행 단위 ( 하둡 1.0 은 map reduce  에서 task 단위로 job을 실행 )

(4) Application Master 

- 하나 yarn 에 하나의 Application Master 를 할당하여 어플리케이션을 관리한다.

 

하이브 (hive)

- 하둡 기반의 데이터 웨어하우징용 솔루션 

- hiveQL 는 내부적으로 MapReduce 잡으로 변환되어 실행된다.

 

 

 

 

===

 

 

  • 하둡 
    1. 분산 데이터 처리의 공통 플랫폼 / 다수의 소프트웨어로 구성된 집합체
      1. 분산파일시스템(HDFS) >리소스 관리자 (YARN) (Mesos) > 분산데이터 처리 (MapReduce)(Tez) > 쿼리엔진 (hive)(impala)(flink)(spark)
  • 분산 시스템의 구성요소 (그림)
    1. HDFS
      1. 분산파일 시스템
    2. YARN
      1. 리소스 관리자 (우선순위 결정가능)
      2. CPU, 메모리 등 계산 리소스 관리 > 애플리케이션이 실행되도록 제어함 
      3. 어플리케이션이 사용하는 CPU코어와 메모리를 컨테이너 단위로 관리
      4. 하둡에서 분산 애플리케이션 실행 시 yarn이 컨테이너를 할당함 ( 전체 클러스트 중 비어있는 호스트 순으로)
        1. 클러스터 활용 가능 & 확장성
      5. 분산시스템은 많은 리소스를 소비하지만 호스트 수에 따라 사용할 수 있는 리소스 상한이 존재함
    3. MapReduce
      1. 대량의 데이터를 배치처리하기 위한 데이터
      2. yarn 상에서 동작하는 분산 애플리케이션
      3. 분산 시스템에서 데이터 처리 실행 시 사용
        1. 임의의 자바 프로그램을 실행가능
  • 분산데이터 처리 및 쿼리 엔진 = hive
    1. SQL 등 쿼리 언어로 데이터 집계시 이용되는 쿼리엔진 
    2. 쿼리르 자동으로 MapReduce 프로그램으로 변환하는 소프트웨어 
    3. MapReduce + Hive => 대량의 데이터 읽음 가능 / 작은 프로그램 실행시 오버헤드 많아 애드 혹 쿼리에는 부적합하다