/** * Converts collection of rich nodes to block location data. * * @param nodes Collection of affinity nodes. */ private void convertFromNodes(Collection<ClusterNode> nodes) { Collection<String> names = new LinkedHashSet<>(); Collection<String> hosts = new LinkedHashSet<>(); Collection<UUID> nodeIds = new ArrayList<>(nodes.size()); for (final ClusterNode node : nodes) { // Normalize host names into Hadoop-expected format. try { Collection<InetAddress> addrs = U.toInetAddresses(node); for (InetAddress addr : addrs) { if (addr.getHostName() == null) names.add(addr.getHostAddress() + ":" + 9001); else { names.add(addr.getHostName() + ":" + 9001); // hostname:portNumber hosts.add(addr.getHostName()); } } } catch (IgniteCheckedException ignored) { names.addAll(node.addresses()); } nodeIds.add(node.id()); } this.nodeIds = nodeIds; this.names = names; this.hosts = hosts; }