[HADOOP] java.lang.OutOfMemoryError와 얻기 :지도 감소 제출하는 동안 GC 오버 헤드 제한 초과
HADOOPjava.lang.OutOfMemoryError와 얻기 :지도 감소 제출하는 동안 GC 오버 헤드 제한 초과
지도가 감소 제출하면서 메시지 아래 얻기. 를 MaxPermSize = 128m 메모리 크기 : 내지도 -XX와 함께 프로그램을 줄이기 시작했다.
지금 세드릭 수행 사람이 단서를 가지고 -
17/03/24 09:58:46 INFO hdfs.DFSClient: Created HDFS_DELEGATION_TOKEN token 1160328 for svc_pffr on ha-hdfs:nameservice3
17/03/24 09:58:46 ERROR hdfs.KeyProviderCache: Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider !!
17/03/24 09:58:46 INFO security.TokenCache: Got dt for hdfs://nameservice3; Kind: HDFS_DELEGATION_TOKEN, Service: ha-hdfs:nameservice3, Ident: (HDFS_DELEGATION_TOKEN token 1160328 for svc_pffr)
17/03/24 09:58:46 ERROR hdfs.KeyProviderCache: Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider !!
17/03/24 09:58:46 WARN mapreduce.JobSubmitter: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
17/03/24 09:58:47 ERROR hdfs.KeyProviderCache: Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider !!
17/03/24 10:01:55 INFO mapreduce.JobSubmitter: Cleaning up the staging area /user/svc_pffr/.staging/job_1489708003568_5870
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.hadoop.security.token.Token.<init>(Token.java:85)
at org.apache.hadoop.hdfs.protocol.LocatedBlock.<init>(LocatedBlock.java:52)
at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(PBHelper.java:755)
at org.apache.hadoop.hdfs.protocolPB.PBHelper.convertLocatedBlock(PBHelper.java:1174)
at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(PBHelper.java:1192)
at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(PBHelper.java:1328)
at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(PBHelper.java:1436)
at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(PBHelper.java:1445)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getListing(ClientNamenodeProtocolTranslatorPB.java:549)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
at com.sun.proxy.$Proxy23.getListing(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient.listPaths(DFSClient.java:1893)
at org.apache.hadoop.hdfs.DistributedFileSystem$15.<init>(DistributedFileSystem.java:742)
at org.apache.hadoop.hdfs.DistributedFileSystem.listLocatedStatus(DistributedFileSystem.java:731)
at org.apache.hadoop.fs.FileSystem.listLocatedStatus(FileSystem.java:1664)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:300)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:264)
at org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat.listStatus(SequenceFileInputFormat.java:59)
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:385)
at org.apache.hadoop.mapreduce.JobSubmitter.writeNewSplits(JobSubmitter.java:589)
at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:606)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:490)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1295)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1292)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1292)
해결법
-
==============================
1.당신은 클라이언트 힙 크기를 늘려야합니다.
당신은 클라이언트 힙 크기를 늘려야합니다.
당신은 시도 할 수 있습니다 : - 수출 HADOOP_CLIENT_OPTS = "$ HADOOP_CLIENT_OPTS -Xmx1g을".
그런 다음 XX없이 하둡 실행을 시작합니다를 MaxPermSize = 128m
또한이 링크를 확인하실 수 있습니다 .. http://community.cloudera.com/t5/Batch-Processing-and-Workflow/cloudera-hadoop-mapreduce-job-GC-overhead-limit-exceeded-error/td-p/ 14754
-
==============================
2.이 포화 되었기 때문에 나는이 예외를했다, 난 그냥 내 HDFS를 포맷!
이 포화 되었기 때문에 나는이 예외를했다, 난 그냥 내 HDFS를 포맷!
$ hadoop namenode -format
당신이 당신의 HDFS를 포맷 할 경우, 데이타 노드에 대한 모든 정보가 손실됩니다 그래서 당신이 데이타 노드와 관련된 모든 메타 데이터를 잃게됩니다하십시오주의!
-
==============================
3.사실 내 경우에 - 나는 6000 개 입력 경로를 얻고 내지도-감소 프로그램은 최소 6000 매퍼를 만들 것입니다 및 제출 동안 따라서 I 메모리 예외 벗어나 려하고있다. 이러한 유형의 문제를 해결하기 위해 어떤 좋은 방법이 있습니까.
사실 내 경우에 - 나는 6000 개 입력 경로를 얻고 내지도-감소 프로그램은 최소 6000 매퍼를 만들 것입니다 및 제출 동안 따라서 I 메모리 예외 벗어나 려하고있다. 이러한 유형의 문제를 해결하기 위해 어떤 좋은 방법이 있습니까.
from https://stackoverflow.com/questions/42997177/getting-java-lang-outofmemoryerror-gc-overhead-limit-exceeded-while-submitting by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 돼지 - 제거 줄 바꿈, 반환 및 탭 (0) | 2019.10.20 |
---|---|
[HADOOP] 때 JVM (또는 OS) 비정상적으로 파일 핸들러를 닫을 수 있습니다? (0) | 2019.10.20 |
[HADOOP] 아파치 기린과 하이브 - JDBC - 스토리지 - 핸들러 빌드 큐브 문제 (0) | 2019.10.20 |
[HADOOP] 돼지 - 최대 개수를 가져옵니다 (0) | 2019.10.19 |
[HADOOP] 하이브 외부 테이블은 HDFS의 새로운 마루 파일을 검색 할 수 있습니다 (0) | 2019.10.19 |