일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 12761 돌다리
- 정렬
- 파이썬
- 백준 파이썬
- 몽고디비 렘
- 백준 12761번
- ddd
- 하둡
- golang
- http 완벽가이드
- 고 배열
- 자바 디자인 패턴
- go
- flask
- 도메인 주도 개발 시작하기
- 백준 사이트
- 백준 12761
- MongoDB Realm
- hadoop
- 자바
- 트리 순회
- 도메인 주도 개발
- http 개념
- 자바 디자인패턴
- 12761번 돌다리
- domain driven develop
- 백준
- 우분투
- String 함수
- golang struct
- Today
- Total
목록Hadoop (7)
개발바닥
컴바이너(Combiner) 란? 미니 리듀서(Mini Reducer) 혹은 로컬 리듀서(Local Reducer)라 부르기도 하는데 맵 태스크의 출력에 리듀스 코드를 먼저 적용해서 리듀스로 넘어가야 하는 데이터의 크기를 줄여 주므로써 맵 태스크와 리듀스 태스크 간의 네트워크 통신량을 최소화시켜 줍니다. 모든 잡에 컴바이너를 적용은 불가능합니다. 작업의 순서를 달리해도 최종 결과물이 같은 잡이거나 교환 법칙과 결합 법칙이 만족되는 잡이라면 컴바이너를 적용이 가능합니다. 컴바이너가 적용된 WordCount 그림입니다. 「 자료 출처 : 광운대학교 컴퓨터소프트웨어학과 빅데이터처리및응용 김우생교수님 강의자료 ppt 」 main 함수에 리듀스 클래스를 그대로 컴바이너로 지정해준다. job.setCombinerCl..
Mapper 클래스에는 setup , cleanup , run 이라는 세 개의 메소드들이 존재하며 Mapper 클래스를 상속받은 클래스들은 3개에 메소드들을 오버라이딩해서 사용이 가능하다. 메소드들에 대해서 알아보겠습니다. public void setup(Mapper.Context context) setup 메소드- map 메소드가 호출되기 전에 먼저 딱 한번 호출되는 메소드로 map에서 필요한 리소스를 여기에서 할당하거나 map에서 필요한 선행 작업을 여기서 수행한다. public void clenaup(Mapper.Context context) cleanup 메소드 - setup 메소드의 반대 역할을 한다고 생각하면 된다. map 함수의 호출이 완료되면, 즉 모든 입력 레코드가 처리되면 마지막으로 한..
단어들을 카운트하는 프로그램을 구현해보았습니다. 맵리듀스 구조는 다음 그림과 같습니다. 소스 코드 https://github.com/jokerKwu/Hadoop/blob/master/WordCount.java 데이터 파일 결과 화면
MapReduce 프로그램은 기본적으로 맵과 리듀스의 두 단계로 구성이 되고 맵과 리듀스 모두 입력으로 주어지는 데이터나 출력으로 내보내는 데이터가 모두 (key,value) 형태로 구성됩니다. 맵(Map) 의 기본 동작에 대해서 알아 보겠습니다. 일반적으로 데이터가 주어졌을 때 데이터를 라인별로 나누게 됩니다. 입력 레코드에 k1은 라인 번호이고 v1은 문장입니다. 맵에서 데이터를 가공해서 같은 키값을 갖는 레코드들을 모아서 리듀스로 하나의 입력으로 들어가게 됩니다. 리듀스 입력 레코드의 키는 맵의 출력 레코드의 키가 됩니다. 같은 키를 갖는 맵의 출력 레코드들의 밸류를 리스트로 만든 것이 리듀스 입력 레코드의 밸류가 됩니다. 리듀스는 맵의 처리결과를 보고 같은 키값을 갖는 것들에 대해 또 다른 작업을..
WritableComparable 인터페이스를 구현한 Wrapper 클래스 목록 클래스명 데이터 타입 BooleanWritable Boolean ByteWritable 단일 Byte DoubleWritable Double FloatWritable Float IntWritable Int LongWritable Long TextWritable UTF-8 형식의 문자열 NullWritable 데이터 값이 필요없을 경우 사용 InputForamt (입력 포맷) 클래스란? 입력 파일을 어떻게 해석하는가를 결정한다. 입력 파일을 몇 개의 논리적인 InputSplit로 나눌지 결정하고 하나의 InputSplit에서 RecordReader 객체에 레코드 별로 키와 값으로 읽어드린다. 잡 클래스의 setInputForm..
분산 파일 시스템 (DFS, Distributed File System)이란? 마스터 노드(Master node)와 슬레이브 노드(Slave node)로 구성되어 있다. 마스터 노드란? 현재 분산 파일 시스템에서 사용하고 있는 모든 슬레이브 노드들을 관리하는 것이다. 실시간으로 각 슬레이브 노드들에 대한 정보를 파악하고 있어야 된다. 그리고 디렉토리와 파일에 대한 정보를 포함하는 메타데이터를 관리한다. 마스터 노드는 데이터가 정확하게 어느 슬레이브 노드에 있는지 알고 있어야 해당 슬레이브를 빠르게 요청을 하고 어느 슬레이브가 디스크 용량이 충분한지 등의 실시간으로 정보를 확보함으로써 사용자가 업로드 요청하면 어느 슬레이브에 저장할지 결정하는 역할을 한다. 슬레이브 노드란? 사용자의 데이터를 저장하는 역할..
하둡(Hadoop)이란? 하둡은 오픈소스로 제공되는 플랫폼으로 대규모 데이터 세트를 효율적으로 처리한다. 분산 시스템의 대표인 하둡은 하나의 서버에서 저장할 수 없는 엄청난 양의 데이터를 저장하기 위하여 수천 대의 서버를 네트워크로 묶어 마치 하나의 서버가 보유하고 있는 파일 시스템처럼 사용할 수 있는 분산 파일 시스템(Distributed File System)과 각 서버가 저장하고 있는 데이터를 동시에 병렬로 처리할 수 있는 분산 처리 시스템(Distributed Processing System)으로 구성되어 있다. 하둡에는 크게 3가지 프로젝트로 구성되어 있다. 하둡 공통 (Hadoop Common) : 하둡 프로젝트들의 기반이 되는 통신 방법 및 쉘 프로그램 등을 다루고 있다. 하둡 분산 파일 시..