복붙노트

[HADOOP] 감속기에서 데이터 스큐를 처리하는 Hadoop

HADOOP

감속기에서 데이터 스큐를 처리하는 Hadoop

감속기에 대한 데이터 비뚤어 짐을 처리하기 위해 hadoop API (hadoop 2.0.0 mrv1)에서 사용할 수있는 특정 후크가 있는지 확인하려고합니다. 시나리오 : 맞춤식 복합 키와 분할기를 사용하여 데이터를 감속기로 라우팅하십시오. 홀수 경우를 처리하기 위해 백만 건의 키와 큰 값이 같은 감속기에서 종료 될 가능성이 매우 높은 경우에는 일종의 경험적 방법이 필요하기 때문에이 데이터를 새로운 감속기를 생성하기 위해 더 분할 할 수 있습니다. 2 단계 과정을 생각하고있다.

더 좋은 방법 / 다른 방법이 있습니까?

가능한 대응책은 맵퍼의 결과를 작성하고 감속기 작업을 수행하는 다른 맵 작업을 스핀 할 수 있지만 namenode를 가압하지는 않을 수 있습니다.

해결법

  1. ==============================

    1.이 아이디어는 내 마음에 온다, 나는 그것이 얼마나 좋은지 잘 모르겠다.

    이 아이디어는 내 마음에 온다, 나는 그것이 얼마나 좋은지 잘 모르겠다.

    데이터가 왜곡되어 현재 10 개의 매퍼로 작업을 실행하고 있다고 가정 해 보겠습니다. 아이디어는 감속기의 수를 15로 설정하고 (매 키, 값) 최대 매수가 각 매퍼에서 하나의 감속기로 이동해야하는 것을 정의하는 것입니다. 이 정보는 사용자 정의 파 티셔 터 클래스의 해시 맵에 보관됩니다. 특정 감속기가 한계에 도달하면, (키, 값) 쌍의 다음 세트를 다른 감속기에 보내기 시작합니다.

  2. ==============================

    2.당신이 처리 할 수 ​​있다면, Combiner (reduce-type 함수)를 사용하면 도움이 될 것입니다. Mapper 측의 데이터를 사전 집계하는 경우. 그런 다음 모든 데이터가 동일한 감속기에서 끝나더라도 데이터 양을 관리 할 수 ​​있습니다.

    당신이 처리 할 수 ​​있다면, Combiner (reduce-type 함수)를 사용하면 도움이 될 것입니다. Mapper 측의 데이터를 사전 집계하는 경우. 그런 다음 모든 데이터가 동일한 감속기에서 끝나더라도 데이터 양을 관리 할 수 ​​있습니다.

    스큐 케이스를 피하기 위해 파티셔너를 다시 구현할 수도 있습니다.

  3. from https://stackoverflow.com/questions/32627836/hadoop-handling-data-skew-in-reducer by cc-by-sa and MIT license