Data

[1028 from 실무로 배우는 빅데이터 기술 By 김강원 10]하둡

하둡 https://hadoop.apache.org/

1. 대용량 데이터 분산저장
2. 분산 저장된 데이터를 가공/분석 처리하는기능. 
라이센스 Apache
유사프로젝트 GS(Google File System), Gluster, MogileFS 모자일FS, GridFS, Lustre 러스터
주요
구성요소
DataNode 블록(64MB or 128MB 등) 단위로 분할된 대용량 파일들이 DataNode의 디스크에 저장 및 관리
... 서버...
NameNode DataNode에 저장된 파일들의 메타 정보를 메모리상에서 로드해서 관리. 
EditsLog 에디트로그 파일들의 변경 이력(수정, 삭제 등) 정보가 저장되는 로그파일
FsImage  NameNode 메모리상에 올라와 있는 메타정보를 스냅샵이 이미지로 만들어 생생한 파일
주요
구성요소
Ver.1x
SecondaryNameNode NameNode의 FsImage, EditsLog 파일을 주기적으로 유지관리해 주는 체크포인팅 노드. 
MapReduce v1 DataNode에 분산 저된 파일이 스프릿(Map)되어 다양한 연산(정렬, 그루핑, 지계) 수행한 뒤 그 결과를 다시 병합(Reduce) 하는 분산 프로그래밍 기법
JobTracker 맵류듀스의 잡을 실행하면서 태스크에 할당하고,
전체 잡에 대해 리소스 분배 및 스케줄링
TaskTracker JobTracker가 요청한 맵 리듀스 프로그램이 실행되는 태스크이며,
이때 맵 태스크와 리듀스 태스크 생성. 
주요
구성요소
Ver.2x
Active/Stand-ByNameNode NameNode를 이중화 해서 서비스 중인Active NameNode와
실패 처리를 대비한 Standby NameNode로 구성
MapReduce v2/YARN 하둡 클러스터 내의 자원을 중앙 관리하고, 그 위에 다양한 애플리케이션 실행 및 관리가 가능하도록 확장성과 호환성을 높인 하둡2.x플랫폼
ResourceManager 하둡 클러스터 내의 자원을 중앙 관리하면서, 작업 요청 시 스케줄링 정책에 따라 자원을 분배해서 실행시키고 모니터링. 
NodeManager 하둡 클러스터의 DataNode마다 실행되면서 Container를 실행 시키고 라이프 사이클 관리
주요
구성요소
Ver.2x 2
Container DataNode의 사용가능한 리소스(CPU, 메모리, 디스크 등)을 Container 단위로 할당해서 구성. 
ApplicationMaster 애플리케이션 실행되면 ApplicationMaster가 생성되며, ApplicationMaster는 NodeManager에게 애플리케이션이 실행될 Container를 요청하고 그 위에서 애플리케이션을 실행 및 관리. 
JournalNode 3개 이상의 노드로 구성되어 EditsLog를 각 노드에 복제 관리하며 Active NameNode는 EditisLog에 쓰기만을 수행
아키텍처

클라이언트 Case1 :  1TB   
- 데이터노드: 각각,.... 블록단위 저장(기본 128M) * 3복제 
- 네임노드: 데이터정보 보유,
- 세컨터리네임노드: 네임노드 백업 관리 유지
- 잡 트랙커 : 맵리듀스, 테스크 트랙커 관리 실행 모니터링
클라이언트 Case2 : 특정정보 추출원하면 맵리듀스 에 일을시켜결과를 뽑아옴.   

2.x : 1.x 안전성, 범용성 올라감. 
주키퍼 : 분산 코디네이터 : 네임노드 Active, StandBy 에대해 가용성에대한 포지션. 
- 네임노드 : Active, StandBy 구조로 바뀜. 
- 저널로드
리소스메니저 : 데이터노드 자원관리
- 데이터노드
- 노드 매니저 안에 컨테이너가 존재
- 컨테이너 : 위해 얀을 기반으로한 다양한 어플리케이션 사용. 
- 어플리케이션 마스터: 얀위에 어플리케이션 실행마다 생김.  분산 실행 컨테이너의 어플리케이션 관리. 

하둡 2.x  네임노드 엑티브 스탠바이로 사용가능. 이전에는 서드파티 도구 사용. 
맵리듀스에 얀 리소스메니저나오면서 ... 얀 라이프사이클 지키면 하둡에 데이터노드에 다양한 소프트웨어 테스크사용가능
활용 방안 스마트카 상태정보(100MB/1일)
-수집-> 플럼 -적재-> 하둡(DataNode 1~3))

DataNode 1~3
= HDFS(스마트카 상태정보 파티션나눠 일단위) + 맵 리듀스. 
 
==> 스마트카의 상태정보 장기적재
       일/주/월/년 단위 시계열분석
하둡의 맵 리듀스 분산 병렬 처리에서 핵심은 맵리듀스...
1. 여러 컴퓨터 분산 저장돼 있는 데이터로부터 어떻게 효율적으로 일을 나눠서 (Map)실행시킬수 있느냐,
2. 여러 컴퓨터가 나눠서 실행한 결과들을 어떻게 하나로 모으냐(Reduce)

이를 쉽고 편리하게 지원하는 프레임워크가 하둡의 맵리듀스. 

            ->  Server1  Map1       Server 11
고객정보 -> Server2  Map2   --> Vip고객  Reduce1  -> Vip 평균영봉. 
  (1TB)    -> Server3   Map3        (50MB)                    (1KB)
            ->   ...
             -> Server10  Map10

 분석가 : 분석쿼리 Map 에 명령 전달... 프로그램이 이동
일반적 : DB를 메모리 올려 처리.