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.
if (location == null) { InetAddress inetAddress = InetAddress.getByName(ip); location = inetAddress.getHostName(); hostNameCache.put(ip, location); }
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.
if (location == null) { InetAddress inetAddress = InetAddress.getByName(ip); location = inetAddress.getCanonicalHostName(); hostNameCache.put(ip, location); }
Attachments
Issue Links
- is related to
-
ACCUMULO-2147 Create test to verify mappers are running locally
- Resolved