복붙노트

[HADOOP] java.lang.OutOfMemoryError와 얻기 :지도 감소 제출하는 동안 GC 오버 헤드 제한 초과

HADOOP

java.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. ==============================

    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. ==============================

    2.이 포화 되었기 때문에 나는이 예외를했다, 난 그냥 내 HDFS를 포맷!

    이 포화 되었기 때문에 나는이 예외를했다, 난 그냥 내 HDFS를 포맷!

    $ hadoop namenode -format
    

    당신이 당신의 HDFS를 포맷 할 경우, 데이타 노드에 대한 모든 정보가 손실됩니다 그래서 당신이 데이타 노드와 관련된 모든 메타 데이터를 잃게됩니다하십시오주의!

  3. ==============================

    3.사실 내 경우에 - 나는 6000 개 입력 경로를 얻고 내지도-감소 프로그램은 최소 6000 매퍼를 만들 것입니다 및 제출 동안 따라서 I 메모리 예외 벗어나 려하고있다. 이러한 유형의 문제를 해결하기 위해 어떤 좋은 방법이 있습니까.

    사실 내 경우에 - 나는 6000 개 입력 경로를 얻고 내지도-감소 프로그램은 최소 6000 매퍼를 만들 것입니다 및 제출 동안 따라서 I 메모리 예외 벗어나 려하고있다. 이러한 유형의 문제를 해결하기 위해 어떤 좋은 방법이 있습니까.

  4. from https://stackoverflow.com/questions/42997177/getting-java-lang-outofmemoryerror-gc-overhead-limit-exceeded-while-submitting by cc-by-sa and MIT license