Clément, any luck?

On Thu, Feb 21, 2013 at 9:35 AM, Alejandro Abdelnur <[email protected]>wrote:

> Hi Clément,
>
> The HADOOP_USER_NAME trick will work only in a non-secure cluster where
> you can be whoever you want just by setting that property. it will not work
> in a secure setup.
>
> The JavaAction has the same limitation as the shell action (the shell
> action is a specialized java action that just launches a shell).
>
> Said this, would you try the following? passing the following option to
> all your hadoop tool invocations from your shell
>
>  -Dmapreduce.job.credentials.binary=${HADOOP_TOKEN_FILE_LOCATION}
>
> If this work, it will work for both unsecure and secure clusters.
>
> Thx.
>
>
>
> On Thu, Feb 21, 2013 at 9:22 AM, Clément MATHIEU 
> <[email protected]>wrote:
>
>> On 2013-02-21 18:01, Alejandro Abdelnur wrote:
>>
>> Thanks Alejandro,
>>
>>  Oozie provides MR and Pig actions that propagate the user identity
>>> correctly. If you are using a shell action your shell action ends up
>>> running as the Unix user running the task, in an unsecure cluster is
>>> typically the mapred user, in a secure cluster is the same user that
>>> submitted the job to Oozie
>>>
>>
>> I fully understand that. My question was about how to make things work
>> for the shell action since I believe that my use case is legitimate. What
>> is the purpose of the shell action if even a simple operation like creating
>> a new file leads to a bad file ownership ?
>>
>>  you want to run jobs against the cluster using the correct user, you
>>> should
>>> use the Oozie provided actions for that effect (MR, Pig, Sqoop, Hive,
>>> distcp, etc).
>>>
>>
>> In the meantime I did some experimentation with the HADOOP_USER_NAME
>> environment variable. Specifying it solve almost all my issues (Pig & MR
>> job are run using the right user, files have the right owner). You even
>> don't have to hard code the user name since you can use the user() EL
>> function.
>>
>>    <exec>[SHELL-COMMAND]</exec>
>>             <argument>[ARG-VALUE]</**argument>
>>                 ...
>>             <env-var>HADOOP_USER_NAME=${**wf:user()}</env-var>
>>             <file>[FILE-PATH]</file>
>>             ...
>>    </exec>
>>
>>
>> Wouldn't it be good to do something like this automatically rather the
>> put the burden on the user ? I don't see why an user would prefer the
>> current behavior.
>>
>> I'm not sure if this solution would work in secure mode too. But I
>> definitely believe that there is a better option than forcing the user to
>> always use Oozie actions even when another tool is more suitable for the
>> job.
>>
>>
>> BTW: Does the Java action suffers from the same limitation ?
>>
>>
>> Thanks,
>>
>>
>> -- Clément
>>
>
>
>
> --
> Alejandro
>



-- 
Alejandro

Reply via email to