본문 바로가기

Hadoop13

Hadoop Writable - WritarbleDataInput 과 DataOutput 인터페이스를 기반으로 간단하고 효율적으로 serialization protocol을 구현하는 serializable object이다. 하둡 Map-Reduce Framework 안에서 모든 key나 value Type은 이 인터페이스를 구현한다.일반적인 구현은 readFields를 호출하고 해당 인스턴스를 반환하는 새로운 인스턴스를 생성하는 메소드 static read(DataInput)를 구현한다. public class MyWritable implements Writable { // Some data private int counter; private long timestamp; //out으로 Object의 fields를 Serialize한.. 2014. 7. 2.
Hadoop OutputCollector - OutputCollector OutputCollector 는 Mapper 또는 Reducer 에 의해 처리된 데이터를 출력하기 위한 인터페이스 이다. 예를 들어 output.collect(key, value) 는 Map 수행결과를 출력하게 된다. 2014. 6. 27.
Hadoop setPartitionerClass & setGroupingComparatorClass - setPartitionerClass & setGroupingComparatorClass * setPartitionerClass 파티셔너는 맵 태스크의 출력 데이터를 리듀스 태스크의 입력 데이터로 보낼지 결정하고, 이렇게 파티셔닝된 데이터는 맴 태스크의 출력 데이터의 키의 값에 따라 정렬된다. MapReducer에서 사용하는 파티셔너는 반드시 org.apache.hadoop.mapreduce.Partitioner를 상속받아서 구현해야 한다. 이때 파티셔너 설정하는 두 개의 패러미터는 Mapper의 출력 데이터 키와 값에 해당하는 패러미터이다. 예) import org.apache.hadoop.mapreduce.Partitioner; public class RecPartitioner extends Par.. 2014. 6. 16.
Hadoop Chain - Chain 하둡은 하나의 랩리듀스 잡에서 여러 개의 매퍼와 리듀서를 실행할 수 있게 체인매퍼(ChainMapper) 와 제인리듀서 (ChainReduce애를 제공한다. 두 클래스는 체인 방식으로 매퍼와 리듀서를 호출하게 된다. 체인매퍼의 경우 첫 번째 매퍼를 실행한 후 그 출력을 두 번째 매퍼의 입력 파라미터로 전달하 고, 두번째 매퍼의 출력은 그 다음 순서의 매퍼의 입력으로 전달된다. 이렇게 순차 적으로 매퍼가 실행 되다가 마지막에 있는 매퍼의 출력이 매퍼의 최종 출력 데이터가 된다. 체인리듀서도 위와같은 방식으 로 출력 데이터가 만들어진다. 예) Configuration conf = new Configuration(); //MapReduce job 이름 설정 conf.setJobName("chai.. 2014. 6. 16.