[ 
https://issues.apache.org/jira/browse/MAPREDUCE-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12752876#action_12752876
 ] 

Devaraj Das commented on MAPREDUCE-181:
---------------------------------------

bq. Instead of storing the UGI with the submitted job, please store the user as 
a string. That will be forward compatible when we move to server-side groups. I 
think it makes sense to do as part of this patch, if it isn't already being 
done.

The jobconf already has the username. Are you saying that the JT should 
maintain the mapping from the jobID to the username who was given this jobID 
(step 1 in the jobsubmission protocol), so that in the the following RPC the JT 
would be able to efficiently look up the username based on the jobID, rather 
than having to parse the conf to get it?

bq. The meta information should only include the offset, since the length is 
redundant with the following split's start.

Hmm.. right.

bq. We use the binary format instead of xml to store the jobconf. However, when 
loading the binary format, we need to handle the final parameters.

The conf is serialized using Configuration's write(DataOutput) that actually 
serializes everything out as strings. The JobTracker then writes the read 
configuration in the mapred.system.dir using Configuration.writeXml. The 
JobInProgress constructor loads the conf in the normal way (in the way it 
happens today). So final parameters defined in the JobTracker will be taken 
care of in the usual way. 

bq. I'm not very happy with half of the job information being saved in the 
system directory and half of it in the staging directory. I assume that the 
staging directory is required to be on the same file system as the system 
directory? Having the job's definition split into two directories with two 
different owners seems bad. That is especially true since the data in the 
system directory will point to particular byte offsets in the staging 
directory. I think we will be in for some really nasty bugs involving

The way I am seeing it is that the JobTracker is given only that piece of 
information that's required to launch the job. Things like job.jar, the split 
bytes, the distributed cache files, and anything else the users want to use in 
the job, are things required by the tasks which the JT doesn't care about. 
Every piece of information is generated by the client. If the client had 
generated the wrong information about the byte offsets, only his job gets 
affected. 
Your sentence about the "nasty bugs" is incomplete..

bq. I assume the cleanup of the staging directory is done by the JobTracker.

Done as part of the job cleanup task.

bq. I guess I would be happier, if as part of JobSubmission, we moved the files 
from the user's staging area into the system dir. The JobTracker would read 
(possibly with a cache) the bytes for the task and send them to the user as 
part of the task definition.

The split bytes file has a high replication factor of 10 (and it could be 
something like what Doug suggested). So do we really want the JT to copy the 
bytes to the system dir. I am trying to weigh the options of letting the tasks 
read the split bytes from the split file directly versus the JT passing the 
same in the task definition. The former reduces load on the JT (it doesn't have 
to load the split bytes in memory at all). 

> Secure job submission 
> ----------------------
>
>                 Key: MAPREDUCE-181
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-181
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>            Reporter: Amar Kamat
>            Assignee: Amar Kamat
>         Attachments: hadoop-3578-branch-20-example-2.patch, 
> hadoop-3578-branch-20-example.patch, HADOOP-3578-v2.6.patch, 
> HADOOP-3578-v2.7.patch, MAPRED-181-v3.8.patch
>
>
> Currently the jobclient accesses the {{mapred.system.dir}} to add job 
> details. Hence the {{mapred.system.dir}} has the permissions of 
> {{rwx-wx-wx}}. This could be a security loophole where the job files might 
> get overwritten/tampered after the job submission. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to