My Oracle Support Banner

Cloudera Manager BDR Replication Throws Exception "java.lang.OutOfMemoryError: GC overhead limit exceeded" (Doc ID 1906373.1)

Last updated on NOVEMBER 05, 2019

Applies to:

Big Data Appliance Integrated Software - Version 2.4.0 and later
Linux x86-64


Facing problems with the HDFS replication through Cloudera Manager, although the manual distcp command is working properly. Configured 6 HDFS folder replication between two different clusters, and 5 of them are working fine except the bigger one.
The following tests:

1. Folder size: 24.1T Number of files: 14 Number of blocks: 98560 Result: Success
2. Folder size: 24.1T Number of files: 15 Number of blocks: 98660 Result: FAIL
3. Folder size: 803.6G Number of files: 112 Number of blocks: 3230 Result: Success
4. (Changing block size from 256M to 10M)
Folder size: 105.3G Number of files: 1 Number of blocks: 107848 Result: FAIL

The replication of a folder with more than 98600 blocks (approximately) fails with the following error:

Full error stack:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
  at java.nio.ByteBuffer.allocate(
  at java.nio.charset.CharsetEncoder.encode(
  at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(
  at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(
  at org.apache.hadoop.hdfs.protocolPB.PBHelper.convertLocatedBlock(
  at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(
  at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(
  at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(
  at org.apache.hadoop.hdfs.protocolPB.PBHelper.convert(
  at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getListing(
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(
  at java.lang.reflect.Method.invoke(
  at com.sun.proxy.$Proxy10.getListing(Unknown Source)
  at org.apache.hadoop.hdfs.DFSClient.listPaths(
  at org.apache.hadoop.hdfs.DistributedFileSystem$1.<init>(
  at org.apache.hadoop.hdfs.DistributedFileSystem.listLocatedStatus(
  at org.apache.hadoop.fs.FileSystem.listLocatedStatus(
  at com.cloudera.enterprise.distcp.SimpleCopyListing.recordEntries(
  at com.cloudera.enterprise.distcp.SimpleCopyListing.doBuildListing(
  at com.cloudera.enterprise.distcp.CopyListing.buildListing(
  at com.cloudera.enterprise.distcp.GlobbedCopyListing.doBuildListing(
  at com.cloudera.enterprise.distcp.CopyListing.buildListing(
  at com.cloudera.enterprise.distcp.CopyListing.buildListing(
  at com.cloudera.enterprise.distcp.DistCp.createInputFileListing(
  at com.cloudera.enterprise.distcp.DistCp.execute(



To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.