2014-11-26 4 views
0

하둡 1에서 하둡 2 염색으로 이동 중입니다. 소스 코드는 MRV2 병을 사용하여 다시 컴파일되었으며 호환성 문제가 없습니다. YARN에서 작업을 수행하려고 할 때 맵이 정상적으로 작동하고 100 %로 갔지만 축소는 ~ 6,7 %에서 멈추었습니다. 성능 문제는 없습니다. 사실, CPU 사용량을 확인했는데, 줄이기가 힘들 때 나타났습니다. CPU가 거의 100 % 유휴 상태이므로 계산이 진행되지 않는 것처럼 보입니다. 이 작업은 Hadoop 1.2.1에서 성공적으로 실행할 수 있습니다.하둡 YARN 감속기/셔플이 걸림

resourcemanager에서 로그 메시지를 확인한 결과지도가 완성 된 후 더 이상 컨테이너가 할당되지 않았으므로 어떤 컨테이너에서도 축소가 실행되지 않았 음을 알았습니다. 이 상황을 일으킨 원인은 무엇입니까?

yarn.nodemanager.aux-services 속성 설정과 관련이 있는지 궁금합니다. 공식 자습서 (http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html)를 따르면이 속성은 다른 셔플 플러그인 (http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/PluggableShuffleAndPluggableSort.html) 대신 MR이 여전히 기본 셔플 메서드를 사용함을 나타내는 mapreduce_shuffle로 설정해야합니다. 나는이 속성을 설정하지 않으려 고했지만 Hadoop은 나를 허용하지 않을 것입니다.

다음은 userlogs/applicationforlder/containerfolder/syslog의 로그가 7 % 감소 할 때의 로그입니다. 그 후에 로그는 더 이상 업데이트되지 않고 멈추었습니다.

2014-11-26 09:01:04,104 INFO [fetcher#1] org.apache.hadoop.mapreduce.task.reduce.Fetcher: fetcher#1 about to shuffle output of map attempt_1416988910568_0001_m_002988_0 decomp: 129587 len: 129591 to MEMORY 
2014-11-26 09:01:04,104 INFO [fetcher#1] org.apache.hadoop.mapreduce.task.reduce.InMemoryMapOutput: Read 129587 bytes from map-output for attempt_1416988910568_0001_m_002988_0 
2014-11-26 09:01:04,104 INFO [fetcher#1] org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 129587, inMemoryMapOutputs.size() -> 2993, commitMemory -> 342319024, usedMemory ->342448611 
2014-11-26 09:01:04,105 INFO [fetcher#1] org.apache.hadoop.mapreduce.task.reduce.Fetcher: fetcher#1 about to shuffle output of map attempt_1416988910568_0001_m_002989_0 decomp: 128525 len: 128529 to MEMORY 
2014-11-26 09:01:04,105 INFO [fetcher#1] org.apache.hadoop.mapreduce.task.reduce.InMemoryMapOutput: Read 128525 bytes from map-output for attempt_1416988910568_0001_m_002989_0 
2014-11-26 09:01:04,105 INFO [fetcher#1] org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 128525, inMemoryMapOutputs.size() -> 2994, commitMemory -> 342448611, usedMemory ->342577136 
2014-11-26 09:01:04,105 INFO [fetcher#1] org.apache.hadoop.mapreduce.task.reduce.ShuffleSchedulerImpl: datanode03:13562 freed by fetcher#1 in 13ms 

하둡 1에서 2로 마이그레이션 할 때 일반적인 문제가 있습니까? Hadoop 2에서 map-shuffle-sort-reduce를 실행하는 전략이 변경 되었습니까? 이 문제의 원인은 무엇입니까? 정말 고마워. 모든 의견이 도움이 될 것입니다!

주요 환경 설정 :

  • 하둡 버전 : 2.5.2
  • 8 코어 CPU와
  • 6 노드 클러스터, 각 노드 15 GB 메모리

관련 속성 설정 :

  • yarn.scheduler.maximum-allocation-mb : 14336
  • yarn.scheduler.minimum 할당-MB : 2500
  • yarn.nodemanager.resource.memory-MB : 14,336
  • yarn.nodemanager.aux-서비스 :
  • mapreduce.task.io.sort.factor을 mapreduce_shuffle : 100
  • mapreduce.task.io.sort.mb :
+0

작업 설정의 사용자 정의 설정은 무엇입니까? mapreduce.map.memory.mb 및 mapreduce.reduce.memory.mb의 값은 무엇입니까? 드라이버 응용 프로그램의 출력은 6.7 %에 불과합니까? – 0x0FFF

+0

mapreduce.map.memory.mb 및 mapreduce.reduce.memory.mb가 설정되지 않았으므로 맵/메모리 제한을 줄일 수 있다고 생각합니다. 그것은 ~ 7 %에 붙어. 질문을 업데이트하여 userlogs/container */syslog의 출력을 추가했습니다. 로그에서 나는 감소가 7 %의 감소 시간에 도달했을 때 멈추는 것을 발견했습니다. –

답변

0

1024 마지막으로 주변에 인터넷 검색을 한 후 문제를 해결하고 이미 삼개월 전에이 질문을 게시 발견했다.

데이터 비뚤어 짐 때문입니다.