Uploaded image for project: 'Hadoop Map/Reduce'
  1. Hadoop Map/Reduce
  2. MAPREDUCE-6719

The list of -libjars archives should be replaced with a wildcard in the distributed cache to reduce the application footprint in the state store



    • Improvement
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.8.0
    • 2.9.0, 3.0.0-alpha1
    • distributed-cache
    • None
    • Reviewed


      When using the -libjars option to add classes to the classpath, every library so added is explicitly listed in the ContainerLaunchContext's local resources even though they're all uploaded to the same directory in HDFS. When using tools like Crunch without an uber JAR or when trying to take advantage of the shared cache, the number of libraries can be quite large. We've seen many cases where we had to turn down the max number of applications to prevent ZK from running out of heap because of the size of the state store entries.
      This JIRA proposes to allow for wildcards both in the internal processing of the -libjars switch and in paths added through the Job and DistributedCache classes. Rather than listing all files independently, this JIRA proposes to replace the complete list of libdir files with the wildcarded libdir directory, e.g. "libdir/*". This behavior is the same as the current behavior when using -libjars, but avoids explicitly listing every file.
      This capability will also be exposed by the DistributedCache.addCacheFile() method.
      See YARN-4958 for the NM side of the implementation and additional discussion.


        1. MAPREDUCE-6719.002.patch
          46 kB
          Daniel Templeton
        2. MAPREDUCE-6719.001.patch
          46 kB
          Daniel Templeton

        Issue Links



              templedf Daniel Templeton
              templedf Daniel Templeton
              0 Vote for this issue
              3 Start watching this issue