하둡이란?
분산 환경에서 빅 데이터를 저장하고 처리할 수 있는 자바 기반의 오픈 소스 프레임 워크
구성 요소
1. 하둡 분산형 파일 시스템 (Hadoop Distributed File System, HDFS)
- 하둡 네트워크에 연결된 기기에 데이터를 저장하는 분산형 파일 시스템
특징 :
1) HDFS는 데이터를 저장하면, 다수의 노드에 복제 데이터도 함께 저장해서 데이터 유실을 방지
2) HDFS에 파일을 저장하거나, 저장된 파일을 조회하려면 스트리밍 방식으로 데이터에 접근해야 함.
3) 한번 저장한 데이터는 수정할 수 없고, 읽기만 가능하게 해서 데이터 무결성을 유지.
(2.0 알파버전부터는 저장된 파일에 append가 가능하게 됨)
4) 데이터 수정은 불가능 하지만 파일이동, 삭제, 복사할 수 있는 인터페이스를 제공함.
2. 맵리듀스 (MapRedue)
- 대용량의 데이터 처리를 위한 분산 프로그래밍 모델, 소프트웨어 프레임 워크
- 맵리듀스 프레임워크를 이용하면 대규모 분산 컴퓨팅 환경에서, 대량의 데이터를 병렬로 분석 가능
- 프로그래머가 직접 작성하는 맵과 리듀스라는 두 개의 메소드로 구성
맵 (Map)
- 흩어져 있는 데이터를 연관성 있는 데이터들로 분류하는 작업(key, value의 형태)
리듀스(Reduce)
- Map에서 출력된 데이터를 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업
1) Splitting : 문자열 데이터를 라인별로 나눈다.
2) Mapping : 라인별로 문자열을 입력받아, <key, value> 형태로 출력
3) Shuffling : 같은 key를 가지는 데이터끼리 분류
4) Reducing : 각 key 별로 빈도수를 합산해서 출력
5) Final Result : 리듀스 메소드의 출력 데이터를 합쳐서 하둡 파일 시스템에 저장
맵 리듀스의 잡(Job)
- Client가 수행하려는 작업단위(입력데이터, 맵리듀스 프로그램, 설정 정보로 구성)
https://opentutorials.org/course/2908/17055
댓글