Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-3135

if the 'mapred.system.dir' in the client jobconf is different from the JobTracker's value job submission fails

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 0.16.1
    • Fix Version/s: 0.18.0
    • Component/s: None
    • Labels:
      None
    • Environment:

      all

    • Hadoop Flags:
      Reviewed
    • Release Note:
      Changed job submission protocol to not allow submission if the client's value of mapred.system.dir does not match the job tracker's. Deprecated JobConf.getSystemDir(); use JobClient.getSystemDir().

      Description

      Until Hadoop 0.13 or so, at submission time the full path of the job.xml and all supporting files in DFS was given by the client to the jobtracker.

      Since 0.15 onwards (we did not test 0.14) the jobclient is obtaining the job ID from the jobtracker and creating the directory for all the supporting files using the a system-dir computed from the local jobconf.

      Line 696-7 in the JobClient:

      String jobId = jobSubmitClient.getNewJobId();
      Path submitJobDir = new Path(job.getSystemDir(), jobId);

      This makes submissions to fail when the value of the 'mapred.system.dir' on the client is different from the one in the JobTracker.

      A simple way o fixing this would be to introduce a new method in the JobSubmissionProtocol 'getSystemDir()' that would return the jobtracker system dir and use that dir for uploading all the files on submission.


      For the future: A more comprehensive way of this doing would to obtain a base jobConf from the jobtracker, carrying final information for each element and the construct the job.xml on the client using the final semantics. And, in this case the 'mapred.system.dir' property should be set as final in the jobtracker. As there may be some configuration properties that are sensitive and for security reasons should not be exposed to the clients a new flag 'private' could be introduced and only properties that don't have the 'private' flag would be send over from the jobtracker to the jobclient for job.xml resolution.

        Attachments

        1. patch-3135-v3.txt
          18 kB
          Subru Krishnan
        2. patch-3135-v4.txt
          20 kB
          Subru Krishnan
        3. patch-3135-v5.txt
          27 kB
          Subru Krishnan
        4. patch-3135-v6.txt
          28 kB
          Subru Krishnan
        5. patch-3135-v6_2.txt
          28 kB
          Subru Krishnan
        6. patch-3135-v6_3.txt
          27 kB
          Subru Krishnan
        7. patch-3135-v7.txt
          22 kB
          Subru Krishnan
        8. patch-3135-v7_1.txt
          22 kB
          Subru Krishnan
        9. patch-3135-v7_2.txt
          24 kB
          Amareshwari Sriramadasu

          Issue Links

            Activity

              People

              • Assignee:
                subru Subru Krishnan
                Reporter:
                tucu00 Alejandro Abdelnur
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: