[ 
https://issues.apache.org/jira/browse/ACCUMULO-2036?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Keith Turner updated ACCUMULO-2036:
-----------------------------------

    Description: 
I ran listscans in the Accumulo shell while running continuous verify on small 
cluster and almost not map task were running locally.

I think ACCUMULO-1585 has broken mapper locality in 1.6.0-SNAPSHOT.  Before 
that change Accumulo would always store IP addrs.  Code like the following in 
o.a.a.c.client.mapreduce.AbstractInputFormat.getSplits() would translate IPs to 
hostnames.  

{code:java}
       if (location == null) {
          InetAddress inetAddress = InetAddress.getByName(ip);
          location = inetAddress.getHostName();
          hostNameCache.put(ip, location);
        }
{code}

In my case I configured Accumulo to use hostnames, but not fully qualified 
ones.  So I think the above code was just passing the non-quallified hostname 
through.   I suspected hadoop wanted FQDN and changed the code to the following 
and mappers ran locally.  I need to confirm what hadoop is expecting.  I think 
the above code will result in a FQDN if given an IP,  so this is not an issue 
for 1.4 or 1.5.

{code:java}
       if (location == null) {
          InetAddress inetAddress = InetAddress.getByName(ip);
          location = inetAddress.getCanonicalHostName();
          hostNameCache.put(ip, location);
        }
{code}

  was:
I ran listscans in the Accumulo shell while running continuous verify on small 
cluster and almost not map task were running locally.

I think ACCUMULO-1585 has broken mapper locality in 1.6.0-SNAPSHOT.  Before 
that change Accumulo would always store IP addrs.  Code like the following in 
o.a.a.c.client.mapreduce.AbstractInputFormat.getSplits() would translate IPs to 
hostnames.  

{code:java}
       if (location == null) {
          InetAddress inetAddress = InetAddress.getByName(ip);
          location = inetAddress.getHostName();
          hostNameCache.put(ip, location);
        }
{code}

In my case I configured Accumulo to use hostnames, but not fully qualified 
ones.  So I think the above code was just passing the non-quallified hostname 
through.   I suspected that maybe hadoop wanted FQDN and changed the code the 
following and mappers ran locally.  I need to confirm what hadoop is expecting. 
 I think the above code will result in a FQDN if given an IP, but not a 
non-quallified hostname.  So this is not an issue for 1.4 or 1.5.

{code:java}
       if (location == null) {
          InetAddress inetAddress = InetAddress.getByName(ip);
          location = inetAddress.getCanonicalHostName();
          hostNameCache.put(ip, location);
        }
{code}


> Mappers are not running locally
> -------------------------------
>
>                 Key: ACCUMULO-2036
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2036
>             Project: Accumulo
>          Issue Type: Bug
>            Reporter: Keith Turner
>             Fix For: 1.6.0
>
>
> I ran listscans in the Accumulo shell while running continuous verify on 
> small cluster and almost not map task were running locally.
> I think ACCUMULO-1585 has broken mapper locality in 1.6.0-SNAPSHOT.  Before 
> that change Accumulo would always store IP addrs.  Code like the following in 
> o.a.a.c.client.mapreduce.AbstractInputFormat.getSplits() would translate IPs 
> to hostnames.  
> {code:java}
>        if (location == null) {
>           InetAddress inetAddress = InetAddress.getByName(ip);
>           location = inetAddress.getHostName();
>           hostNameCache.put(ip, location);
>         }
> {code}
> In my case I configured Accumulo to use hostnames, but not fully qualified 
> ones.  So I think the above code was just passing the non-quallified hostname 
> through.   I suspected hadoop wanted FQDN and changed the code to the 
> following and mappers ran locally.  I need to confirm what hadoop is 
> expecting.  I think the above code will result in a FQDN if given an IP,  so 
> this is not an issue for 1.4 or 1.5.
> {code:java}
>        if (location == null) {
>           InetAddress inetAddress = InetAddress.getByName(ip);
>           location = inetAddress.getCanonicalHostName();
>           hostNameCache.put(ip, location);
>         }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to