[HADOOP] 감속기에서 데이터 스큐를 처리하는 Hadoop
HADOOP감속기에서 데이터 스큐를 처리하는 Hadoop
감속기에 대한 데이터 비뚤어 짐을 처리하기 위해 hadoop API (hadoop 2.0.0 mrv1)에서 사용할 수있는 특정 후크가 있는지 확인하려고합니다. 시나리오 : 맞춤식 복합 키와 분할기를 사용하여 데이터를 감속기로 라우팅하십시오. 홀수 경우를 처리하기 위해 백만 건의 키와 큰 값이 같은 감속기에서 종료 될 가능성이 매우 높은 경우에는 일종의 경험적 방법이 필요하기 때문에이 데이터를 새로운 감속기를 생성하기 위해 더 분할 할 수 있습니다. 2 단계 과정을 생각하고있다.
더 좋은 방법 / 다른 방법이 있습니까?
가능한 대응책은 맵퍼의 결과를 작성하고 감속기 작업을 수행하는 다른 맵 작업을 스핀 할 수 있지만 namenode를 가압하지는 않을 수 있습니다.
해결법
-
==============================
1.이 아이디어는 내 마음에 온다, 나는 그것이 얼마나 좋은지 잘 모르겠다.
이 아이디어는 내 마음에 온다, 나는 그것이 얼마나 좋은지 잘 모르겠다.
데이터가 왜곡되어 현재 10 개의 매퍼로 작업을 실행하고 있다고 가정 해 보겠습니다. 아이디어는 감속기의 수를 15로 설정하고 (매 키, 값) 최대 매수가 각 매퍼에서 하나의 감속기로 이동해야하는 것을 정의하는 것입니다. 이 정보는 사용자 정의 파 티셔 터 클래스의 해시 맵에 보관됩니다. 특정 감속기가 한계에 도달하면, (키, 값) 쌍의 다음 세트를 다른 감속기에 보내기 시작합니다.
-
==============================
2.당신이 처리 할 수 있다면, Combiner (reduce-type 함수)를 사용하면 도움이 될 것입니다. Mapper 측의 데이터를 사전 집계하는 경우. 그런 다음 모든 데이터가 동일한 감속기에서 끝나더라도 데이터 양을 관리 할 수 있습니다.
당신이 처리 할 수 있다면, Combiner (reduce-type 함수)를 사용하면 도움이 될 것입니다. Mapper 측의 데이터를 사전 집계하는 경우. 그런 다음 모든 데이터가 동일한 감속기에서 끝나더라도 데이터 양을 관리 할 수 있습니다.
스큐 케이스를 피하기 위해 파티셔너를 다시 구현할 수도 있습니다.
from https://stackoverflow.com/questions/32627836/hadoop-handling-data-skew-in-reducer by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 지도에서 키에 유형 불일치 : 예상 org.apache.hadoop.io.Text, 수신 한 org.apache.hadoop.io.LongWritable (0) | 2019.06.10 |
---|---|
[HADOOP] 성능을 높이기 위해 사용 된 인스턴스의 수에 따라 hadoop에서 매퍼와 리듀서를 늘리는 방법은 무엇입니까? (0) | 2019.06.10 |
[HADOOP] Hive (JSON 파일)를 사용하여 Hbase에 데이터 삽입 (0) | 2019.06.10 |
[HADOOP] 하이브 문자열에서 중복을 제거하는 방법? (0) | 2019.06.10 |
[HADOOP] 명령 줄을 사용하여 hdfs 분산 파일에서 총 줄 수 찾기 (0) | 2019.06.10 |