본문 바로가기
빅데이터/hadoop

[yarn] InvalidResourceRequestException: Invalid resource request, requested memory < 0, or requested memory > max configured, requestedMemory=-1, maxMemory=102400 에러

by hs_seo 2022. 11. 9.

하둡에서 mapreduce를 이용해서 작업을 진행할 때 다음과 같은 오류가 발생하면서 작업이 진행되지 않을 때가 있습니다.

 

2022-11-07 17:55:58,250 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Before Scheduling: PendingReds:0 ScheduledMaps:12 ScheduledReds:0 AssignedMaps:0 AssignedReds:0 CompletedMaps:0 CompletedReds:0 ContAlloc:0 ContRel:0 HostLocal:0 RackLocal:0
2022-11-07 17:55:58,270 ERROR [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMCommunicator: ERROR IN CONTACTING RM. 
org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: Invalid resource request, requested memory < 0, or requested memory > max configured, requestedMemory=-1, maxMemory=102400
	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.validateResourceRequest(SchedulerUtils.java:298)
	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.normalizeAndValidateRequest(SchedulerUtils.java:240)
	at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.normalizeAndvalidateRequest(SchedulerUtils.java:256)
	at org.apache.hadoop.yarn.server.resourcemanager.RMServerUtils.normalizeAndValidateRequests(RMServerUtils.java:254)
	at org.apache.hadoop.yarn.server.resourcemanager.DefaultAMSProcessor.allocate(DefaultAMSProcessor.java:224)
	at org.apache.hadoop.yarn.server.resourcemanager.AMSProcessingChain.allocate(AMSProcessingChain.java:92)
	at org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.allocate(ApplicationMasterService.java:379)
	at org.apache.hadoop.yarn.api.impl.pb.service.ApplicationMasterProtocolPBServiceImpl.allocate(ApplicationMasterProtocolPBServiceImpl.java:60)
	at org.apache.hadoop.yarn.proto.ApplicationMasterProtocol$ApplicationMasterProtocolService$2.callBlockingMethod(ApplicationMasterProtocol.java:99)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:507)
	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1034)
	at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:994)
	at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:922)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1893)
	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2833)

 

이때 requestedMemory 가 -1이 아니라 정수로 출력된다면 리소스 매니저가 할당할 수 있는 메모리보다 많은 양의 메모리를 요청해서 발생합니다. 이때는 작업의 메모리 설정을 줄여 주면됩니다.

  • mapreduce.map.memory.mb=2048

 

requestedMemory가 -1이라면 이는 작업 드라이버와 노드의 애플리케이션 마스터 포트가 연결되지 않아서 통신이 되지 않을 때 발생합니다. 이때는 다음의 설정으로 포트 레인지를 선언하고 방화벽을 확인합니다.

 

  • yarn.app.mapreduce.am.job.client.port-range=50100-50200
  • yarn.app.mapreduce.am.webapp.port-range=50100-50200

 

또는 서버와 클라이언트의 하둡 버전이 다를 때 오류가 발생합니다. 하둡2로 구성된 서버에 하둡3 클라이언트가 작업을 요청하면 해당 오류가 발생할 수 있습니다. 이럴 때는 버전을 맞추어 주어야 합니다.

 

https://issues.apache.org/jira/browse/YARN-7646

 

[YARN-7646] MR job (based on old version tarball) get failed due to incompatible resource request - ASF JIRA

With quick workaround with fixing HDFS-12920 (set non time unit to hdfs-site.xml), the job still get failed with following error: 2017-12-12 16:39:13,105 ERROR [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMCommunicator: ERROR IN CONTAC

issues.apache.org

 

 

 

 

 

반응형