DBILITY

M/R 동작특성 본문

bigdata/hadoop

M/R 동작특성

DBILITY 2016. 10. 8. 16:16
반응형
  1. 당연하게 하나 이상 입력 경로를 지정할 수 있다.
    입력경로가 디렉토리일 경우 하위 파일을 모두 읽어 드리는 것을 확인하였습니다.
    addInputPath(Job job, Path path) , addInputPaths(Job job, String commaSeparatedPaths),
    setInputPaths(Job job, String commaSeparatedPaths) , setInputPaths(Job job, Path[] inputPaths)
  2. 꼭 Reducer를 써야 하는 것은 아니다.
    org.apache.hadoop.mapreduce.Job.class setNumReduceTasks(int tasks)
  3. Reducer를 이용하면 SQL의 group by 효과를 볼 수 있다.
    Map = Transformation
    Reduce = Aggregation
  4. Reducer를 거친 데이터는 정렬된다. 
    Oracle 같은 경우 10.2 (정확한 버전은 생각안남)부터 hash group by시 sort가 되지 않는다.order by를 꼭 써줘야한다.
    이럴 경우 sort group by로 동작이 되었던가..기억이..
    subquery에 hash group by를 사용하고,외부쿼리에서 sort order by를 하면 된다.이때 subquery에 NO_MERGE힌트를 줬던가..
  5. Input Split 크기를 줄여 동시에 동작하는 Mapper 수를 늘려 성능 향상을 꾀할 수 있다. 
  6. Mapper에서 Reducer로 Key/Value를 전달할 때 Hash Partitioner가 동작하여 Key % Reducer 개수의 결과값을 기반으로
    Key/Value를 전달할 Reducer를 결정한다.
    사용자가 지정할 수 도 있다.
  7. 숫자라도 String과 IntWritable, LongWritable 어떤 것으로 표현하느냐에 따라 정렬 결과가 다를 수 있다.
    ASA 2008 월별 출발/도착지연통계 테스트시 key가 Text여서 인지 결과 sort가 월별로 되지 않았다.
    SQL 정렬도 컬럼타입에 따라 달라진다.
  8. Mapper/Reducer chain을 이용해 여러 과정을 거쳐 최종결과를 도출할 수 있다.
  참고문헌 및 웹문서 :  시작하세요! 하둡프로그래밍 개정2판(위키북스) 정재화지음, ETL과 아파치 하둡
  망각하고 살아가지만, 모든 시스템의 기본은 I/O였다.


반응형
Comments