I have been experimenting with local reads. For me, enabling did not help 
improve read performance at all, I get the same performance either way. I can 
see in the data node logs it is passing back the local path, so it is enabled 
properly.

Perhaps the benefits of local reads are dependent on the type of data and the 
workload? In my test I'm scanning through the entire table via a map reduce 
job. It's a wide table with maybe 20k columns per row on average. I have 
scanner caching set to 10.

My read performance is about 10% of the disk max read throughput, i.e. my disks 
can get 100 mb/sec tested with hdparm and scan performance is about 10 mb/sec. 
Not too bad I suppose. 


On Jan 8, 2012, at 6:35 PM, Zizon Qiu wrote:

> It should be the same as hbase daemon user.
> 
> the check perform by datanode are implement as follow, inside a RPC call.
> the "current user" refer to the remote user,in this case, should the same
> as your hbase user
> 
>  private void checkBlockLocalPathAccess() throws IOException {
>    checkKerberosAuthMethod("getBlockLocalPathInfo()");
>    *String currentUser =
> UserGroupInformation.getCurrentUser().getShortUserName();*
>    if (!*currentUser*.equals(this.userWithLocalPathAccess)) {
>      throw new AccessControlException(
>          "Can't continue with getBlockLocalPathInfo() "
>              + "authorization. The user " + currentUser
>              + " is not allowed to call getBlockLocalPathInfo");
>    }
>  }
> 

Reply via email to