hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alan Gates <ga...@yahoo-inc.com>
Subject Re: Implmenting chown/chmod/chgrp in grunt
Date Wed, 19 Nov 2008 01:14:07 GMT
The FileSystem object from hadoop is contained inside the  
HDataStorage (which you get as a DataStorage object in GruntParser.   
The ElementDescriptor interface that DataStorage gives you doesn't  
have functions for permissions modifications.  That will need to be  
added, then HPath and LocalPath updated to implement these functions  
for hadoop and local files.  In HPath, you'll be able to get a  
reference to the FileSystem object via fs.getHFS().

Alan.

On Nov 13, 2008, at 6:21 PM, Ian Holsman wrote:

> Hi Alan.
> thats not the problem as I have really. In order to change the  
> permissions I need access to a 'FileSystem' object. but I don't see  
> how to get one
>
> the code in hadoop to do the same thing is in FsShellPermissions
>
> public void run(FileStatus file, FileSystem srcFs) throws  
> IOException {
>      FsPermission perms = file.getPermission();
>      int existing = perms.toShort();
>      boolean exeOk = file.isDir() || (existing & 0111) != 0;
>      int newperms = ( applyChmod(userType, userMode,
>                                  (existing>>>6)&7, exeOk) << 6 |
>                       applyChmod(groupType, groupMode,
>                                  (existing>>>3)&7, exeOk) << 3 |
>                       applyChmod(othersType, othersMode,  
> existing&7, exeOk) );
>
>      if (existing != newperms) {
>        try {
>          srcFs.setPermission(file.getPath(),
>                                new FsPermission((short)newperms));
>        } catch (IOException e) {
>          System.err.println(getName() + ": changing permissions of  
> '" +
>                             file.getPath() + "':" + e.getMessage());
>        }
>      }
>    }
>
> which I presume is the only way to do it.
>
>
>
> Alan Gates wrote:
>> Take a look at org.apache.pig.tools.grunt.GruntParser.java.  All  
>> of the file system commands are implemented in there.  That's  
>> probably also where you chmod et al should go.
>>
>> Alan.
>>
>> On Nov 9, 2008, at 5:22 PM, Ian Holsman wrote:
>>
>>> hi.
>>>
>>> I was about to add these commands into the grunt command shell,  
>>> but I couldn't for the life of me figure out how to actually get  
>>> to the FileSystem object so I could change fire off the command.
>>>
>>> any hints on how to do this?
>>>
>>> -- Ian
>>>
>>
>>
>


Mime
View raw message