You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-user@hadoop.apache.org by sam liu <sa...@gmail.com> on 2013/08/22 05:01:48 UTC

How to get username/jobid/taskid/localdir in LinuxTaskController#createLogDir?

Hi Developers,

This is an issue when I prepare a patch for
MAPREDUCE-4490<https://issues.apache.org/jira/browse/MAPREDUCE-4490>,
and I added following comments in that JIRA, but no response so far. We are
eager to resolve this issue in our env, so any one could provide help?
Thanks very much!

JIRA: https://issues.apache.org/jira/browse/MAPREDUCE-4490

My Comments:
"

According to the description, I am trying to provide a patch, as we
encountered same issue in our Hadoop cluster.

First, I added a function in task-controller.c:
int initialize_task(const char* user,
const char * good_local_dirs, const char *job_id, const char *task_id) {
// Prepare the attempt directories for the task JVM.
int result = create_attempt_directories(user, good_local_dirs, job_id,
task_id);
return result;
}

Of cause, I also modified task-controller.h/task-controller.c/main.c. After
that, I try to call this feature through ShellCommandExecutor in
LinuxTaskController#createLogDir. However, I found the default
LinuxTaskController#createLogDir only has two input parameters
(TaskAttemptID taskID,boolean isCleanup), and does not satisfy the input
parameters of function initialize_task(const char* user,const char *
good_local_dirs, const char *job_id, const char *task_id): we can not get
user, dir, jobid, taskid from LinuxTaskController#createLogDir.

Any suggestions on the issue which is blocking my progress?
"