Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-447

Separate ozone-dist and hadoop-dist projects with real classpath separation

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.3.0
    • None
    • None

    Description

      Currently we have the same hadoop-dist project to create both the ozone and and the hadoop distribution.

      To decouple ozone and hadoop build it would be great to create two different dist project.

      The hadoop-dist should be cloned to hadoop-ozone/dist and from hadoop-dist/pom.xml we can remove the hdds/ozone related items and from hadoop-ozone/dist/pom.xml we can remove the core hadoop related part.

      An other issue with the current distribution schema is the lack of real classpath separation.

      The current hadoop distribution model is defined in the hadoop-project-dist which is parent of all the component projects and the output of the distribution generation will be copied by the dist-layout-stitching. There is no easy way to use command specific classpath as the classpath is defined in component level (hdfs/yarn/mapreduce).

      With this approach we will have a lot of unnecessary dependencies on the classpath (which were not on the classpath at the time of the unit tests) and it's not possible (as an example) use different type of jaxrs stack for different services (s3gateway vs scm).

      As a simplified but more effective approach I propose to use the following method:

      1. don't use hadoop-project-dist for ozone projects any more
      2. During the build generate a classpath descriptor (with the dependency:build-classpath maven plugin/goal) for all the projects
      3. During the distribution copy all the required dependencies (with dependency:copy maven plugin/goal) to a lib folder (share/ozone/lib)
      4. During the distribution copy all the classpath descriptors to the classpath folder (share/ozone/classpath)
      5. Put only the required jar files to the classpath with reading the classpath descriptor

      Attachments

        1. HDDS-447-ozone-0.2.001.patch
          44 kB
          Marton Elek
        2. HDDS-447.003.patch
          59 kB
          Marton Elek
        3. HDDS-447.004.patch
          62 kB
          Marton Elek
        4. HDDS-447.005.patch
          62 kB
          Marton Elek
        5. HDDS-447.006.patch
          62 kB
          Marton Elek
        6. HDDS-447.007.patch
          62 kB
          Bharat Viswanadham
        7. HDDS-447.008.patch
          63 kB
          Marton Elek

        Issue Links

          Activity

            People

              elek Marton Elek
              elek Marton Elek
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: