[ 
https://issues.apache.org/jira/browse/HBASE-8495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14123521#comment-14123521
 ] 

Jeffrey Zhong commented on HBASE-8495:
--------------------------------------

{quote}
"Adding a chmod 777 doesn't look the right choice, since not everyone may want 
to open the dir to everyone"
{quote}
Yes, you're right. SecureBulkLoad seems solve this issue nicely. I'm planning 
to do the similar for un-secure case. Basically creating a folder under hbase 
staging directory and use doAs to move files from input folder to this staging 
directory and then bulk load files from the newly folder under staging 
directory. 

> Change ownership of the directory to bulk load
> ----------------------------------------------
>
>                 Key: HBASE-8495
>                 URL: https://issues.apache.org/jira/browse/HBASE-8495
>             Project: HBase
>          Issue Type: Improvement
>          Components: mapreduce
>    Affects Versions: 0.94.7, 0.95.0
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>            Priority: Trivial
>             Fix For: 0.99.0, 0.94.21, 0.98.4
>
>         Attachments: HBASE-8495-0.94-v0.patch
>
>
> To bulk load something you need to change the ownership of the data directory 
> to allow the hbase user to read and move the files, also in the split case 
> you must use the hbase user to run the LoadIncrementalHFiles tool, since 
> internally some directories "_tmp" are created to add the split reference 
> files.
> In a secure cluster, the SecureBulkLoadEndPoint will take care of this 
> problem by doing a chmod 777 on the directory to bulk load.
> NOTE that a chown is not possible since you must be a super user to change 
> the ownership, a change group may be possible but the user must be in the 
> hbase group... and anyway it will require a chmod to allow the group to 
> perform the move.
> {code}
> Caused by: org.apache.hadoop.security.AccessControlException: Permission 
> denied: user=hbase, access=WRITE, inode="/test/cf":th30z:supergroup:drwxr-xr-x
>       at 
> org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:205)
> Caused by: 
> org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(java.io.IOException): 
> java.io.IOException: Exception in rename
>       at 
> org.apache.hadoop.hbase.regionserver.HRegionFileSystem.rename(HRegionFileSystem.java:928)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegionFileSystem.commitStoreFile(HRegionFileSystem.java:340)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegionFileSystem.bulkLoadStoreFile(HRegionFileSystem.java:414)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to