You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whirr.apache.org by to...@apache.org on 2011/04/06 18:33:54 UTC
svn commit: r1089527 - in /incubator/whirr/trunk: ./
core/src/main/java/org/apache/whirr/cluster/actions/
core/src/main/java/org/apache/whirr/service/
services/cassandra/src/main/java/org/apache/whirr/service/cassandra/
services/cassandra/src/test/java...
Author: tomwhite
Date: Wed Apr 6 16:33:53 2011
New Revision: 1089527
URL: http://svn.apache.org/viewvc?rev=1089527&view=rev
Log:
WHIRR-262. Services should not have to do reverse DNS lookups.
Modified:
incubator/whirr/trunk/CHANGES.txt
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java
incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java
incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandlerTest.java
incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java
incubator/whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilder.java
incubator/whirr/trunk/services/elasticsearch/src/test/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilderTest.java
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilder.java
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopNameNodeClusterActionHandler.java
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java
incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilderTest.java
incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java
incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseCluster.java
incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java
incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java
incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java
Modified: incubator/whirr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/CHANGES.txt?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/CHANGES.txt (original)
+++ incubator/whirr/trunk/CHANGES.txt Wed Apr 6 16:33:53 2011
@@ -8,6 +8,10 @@ Trunk (unreleased changes)
WHIRR-222. Support multiple versions of Hadoop. (tomwhite)
+ IMPROVEMENTS
+
+ WHIRR-262. Services should not have to do reverse DNS lookups. (tomwhite)
+
BUG FIXES
WHIRR-253. ZooKeeper service should only authorize ingress to ZooKeeper
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/cluster/actions/BootstrapClusterAction.java Wed Apr 6 16:33:53 2011
@@ -34,9 +34,7 @@ import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.io.IOException;
-import java.net.InetAddress;
import java.net.MalformedURLException;
-import java.net.UnknownHostException;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
@@ -206,18 +204,14 @@ public class BootstrapClusterAction exte
new Function<NodeMetadata, Instance>() {
@Override
public Instance apply(NodeMetadata node) {
- try {
return new Instance(node.getCredentials(), roles,
- InetAddress.getByName(Iterables.get(node.getPublicAddresses(), 0)),
- InetAddress.getByName(Iterables.get(node.getPrivateAddresses(), 0)),
+ Iterables.get(node.getPublicAddresses(), 0),
+ Iterables.get(node.getPrivateAddresses(), 0),
node.getId());
- } catch (UnknownHostException e) {
- throw new RuntimeException(e);
- }
}
}));
}
-
+
class StartupProcess implements Callable<Set<? extends NodeMetadata>> {
final private String clusterName;
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java Wed Apr 6 16:33:53 2011
@@ -17,18 +17,21 @@
*/
package org.apache.whirr.service;
-import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.*;
+import java.io.IOException;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Set;
+import org.apache.whirr.net.DnsUtil;
import org.jclouds.domain.Credentials;
import com.google.common.base.Objects;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
+import com.google.common.net.InetAddresses;
/**
* This class represents a real cluster of {@link Instance}s.
@@ -44,16 +47,22 @@ public class Cluster {
public static class Instance {
private final Credentials loginCredentials;
private final Set<String> roles;
- private final InetAddress publicAddress;
- private final InetAddress privateAddress;
+ private final String publicIp;
+ private String publicHostName;
+ private final String privateIp;
+ private String privateHostName;
private final String id;
- public Instance(Credentials loginCredentials, Set<String> roles, InetAddress publicAddress,
- InetAddress privateAddress, String id) {
+ public Instance(Credentials loginCredentials, Set<String> roles, String publicIp,
+ String privateIp, String id) {
this.loginCredentials = checkNotNull(loginCredentials, "loginCredentials");
this.roles = checkNotNull(roles, "roles");
- this.publicAddress = checkNotNull(publicAddress, "publicAddress");
- this.privateAddress = checkNotNull(privateAddress, "privateAddress");
+ this.publicIp = checkNotNull(publicIp, "publicIp");
+ checkArgument(InetAddresses.isInetAddress(publicIp),
+ "invalid IP address: %s", publicIp);
+ this.privateIp = checkNotNull(privateIp, "privateIp");
+ checkArgument(InetAddresses.isInetAddress(privateIp),
+ "invalid IP address: %s", privateIp);
this.id = checkNotNull(id, "id");
}
@@ -65,12 +74,39 @@ public class Cluster {
return roles;
}
- public InetAddress getPublicAddress() {
- return publicAddress;
+ public InetAddress getPublicAddress() throws IOException {
+ return resolveIpAddress(getPublicIp(), getPublicHostName());
}
- public InetAddress getPrivateAddress() {
- return privateAddress;
+ public InetAddress getPrivateAddress() throws IOException {
+ return resolveIpAddress(getPrivateIp(), getPrivateHostName());
+ }
+
+ private InetAddress resolveIpAddress(String ip, String host) throws IOException {
+ byte[] addr = InetAddresses.forString(ip).getAddress();
+ return InetAddress.getByAddress(host, addr);
+ }
+
+ public String getPublicIp() {
+ return publicIp;
+ }
+
+ public synchronized String getPublicHostName() throws IOException {
+ if (publicHostName == null) {
+ publicHostName = DnsUtil.resolveAddress(publicIp);
+ }
+ return publicHostName;
+ }
+
+ public String getPrivateIp() {
+ return privateIp;
+ }
+
+ public synchronized String getPrivateHostName() throws IOException {
+ if (privateHostName == null) {
+ privateHostName = DnsUtil.resolveAddress(privateIp);
+ }
+ return privateHostName;
}
public String getId() {
@@ -80,8 +116,8 @@ public class Cluster {
public String toString() {
return Objects.toStringHelper(this)
.add("roles", roles)
- .add("publicAddress", publicAddress)
- .add("privateAddress", privateAddress)
+ .add("publicIp", publicIp)
+ .add("privateIp", privateIp)
.add("id", id)
.toString();
}
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Service.java Wed Apr 6 16:33:53 2011
@@ -31,7 +31,6 @@ import java.util.Set;
import org.apache.whirr.cluster.actions.BootstrapClusterAction;
import org.apache.whirr.cluster.actions.ConfigureClusterAction;
import org.apache.whirr.cluster.actions.DestroyClusterAction;
-import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster.Instance;
import org.jclouds.compute.ComputeService;
import org.jclouds.compute.ComputeServiceContextFactory;
@@ -92,13 +91,12 @@ public class Service {
for (Instance instance : cluster.getInstances()) {
String id = instance.getId();
String roles = Joiner.on(',').join(instance.getRoles());
- String publicAddress = DnsUtil.resolveAddress(instance.getPublicAddress()
- .getHostAddress());
- String privateAddress = instance.getPrivateAddress().getHostAddress();
+ String publicIp = instance.getPublicIp();
+ String privateIp = instance.getPrivateIp();
sb.append(id).append("\t");
sb.append(roles).append("\t");
- sb.append(publicAddress).append("\t");
- sb.append(privateAddress).append("\n");
+ sb.append(publicIp).append("\t");
+ sb.append(privateIp).append("\n");
}
try {
Files.write(sb.toString(), instancesFile, Charsets.UTF_8);
Modified: incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java (original)
+++ incubator/whirr/trunk/services/cassandra/src/main/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandler.java Wed Apr 6 16:33:53 2011
@@ -95,7 +95,7 @@ public class CassandraClusterActionHandl
new Function<Instance, String>() {
@Override
public String apply(Instance instance) {
- return instance.getPrivateAddress().getHostAddress();
+ return instance.getPrivateIp();
}
});
}
Modified: incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandlerTest.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandlerTest.java (original)
+++ incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/CassandraClusterActionHandlerTest.java Wed Apr 6 16:33:53 2011
@@ -22,7 +22,6 @@ import static org.junit.Assert.assertEqu
import com.google.common.collect.Sets;
-import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Set;
@@ -35,7 +34,7 @@ public class CassandraClusterActionHandl
private Instance getInstance(String id) throws UnknownHostException {
return new Instance(new Credentials("", ""), Sets.newHashSet(""),
- InetAddress.getLocalHost(), InetAddress.getLocalHost(), id);
+ "127.0.0.1", "127.0.0.1", id);
}
@Test()
Modified: incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java (original)
+++ incubator/whirr/trunk/services/cassandra/src/test/java/org/apache/whirr/service/cassandra/integration/CassandraServiceTest.java Wed Apr 6 16:33:53 2011
@@ -71,7 +71,7 @@ public class CassandraServiceTest {
private Cassandra.Client client(Instance instance) throws TException
{
TTransport trans = new TFramedTransport(new TSocket(
- instance.getPublicAddress().getHostAddress(),
+ instance.getPublicIp(),
CassandraClusterActionHandler.CLIENT_PORT));
trans.open();
TBinaryProtocol protocol = new TBinaryProtocol(trans);
Modified: incubator/whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilder.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilder.java (original)
+++ incubator/whirr/trunk/services/elasticsearch/src/main/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilder.java Wed Apr 6 16:33:53 2011
@@ -104,7 +104,7 @@ public class ElasticSearchConfigurationB
private static void addDefaultsForUnicast(Cluster cluster, CompositeConfiguration config) {
List<String> hosts = Lists.newLinkedList();
for(Cluster.Instance instance : cluster.getInstancesMatching(role(ElasticSearchHandler.ROLE))) {
- hosts.add(String.format("\"%s:9300\"", instance.getPrivateAddress().getHostAddress()));
+ hosts.add(String.format("\"%s:9300\"", instance.getPrivateIp()));
}
config.addProperty("es.discovery.zen.ping.multicast.enabled", "false");
config.addProperty("es.discovery.zen.ping.unicast.hosts", StringUtils.join(hosts, ","));
Modified: incubator/whirr/trunk/services/elasticsearch/src/test/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilderTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/elasticsearch/src/test/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilderTest.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/elasticsearch/src/test/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilderTest.java (original)
+++ incubator/whirr/trunk/services/elasticsearch/src/test/java/org/apache/whirr/service/elasticsearch/ElasticSearchConfigurationBuilderTest.java Wed Apr 6 16:33:53 2011
@@ -27,7 +27,6 @@ import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.ClusterSpec;
import org.junit.Test;
-import java.net.InetAddress;
import java.util.Set;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
@@ -82,7 +81,7 @@ public class ElasticSearchConfigurationB
Set<Cluster.Instance> instances = Sets.newLinkedHashSet();
for(String host : Lists.newArrayList("10.0.0.1", "10.0.0.2")) {
Cluster.Instance instance = mock(Cluster.Instance.class);
- when(instance.getPrivateAddress()).thenReturn(InetAddress.getByName(host));
+ when(instance.getPrivateIp()).thenReturn(host);
instances.add(instance);
}
when(cluster.getInstancesMatching((Predicate<Cluster.Instance>)any()))
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java Wed Apr 6 16:33:53 2011
@@ -18,13 +18,14 @@
package org.apache.whirr.service.hadoop;
+import java.io.IOException;
import java.net.InetAddress;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.RolePredicates;
public class HadoopCluster {
- public static InetAddress getNamenodePublicAddress(Cluster cluster) {
+ public static InetAddress getNamenodePublicAddress(Cluster cluster) throws IOException {
return cluster.getInstanceMatching(
RolePredicates.role(HadoopNameNodeClusterActionHandler.ROLE))
.getPublicAddress();
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilder.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilder.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilder.java Wed Apr 6 16:33:53 2011
@@ -28,7 +28,6 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterSpec;
@@ -79,7 +78,7 @@ public class HadoopConfigurationBuilder
Instance namenode = cluster
.getInstanceMatching(role(HadoopNameNodeClusterActionHandler.ROLE));
config.setProperty("fs.default.name", String.format("hdfs://%s:8020/",
- DnsUtil.resolveAddress(namenode.getPublicAddress().getHostAddress())));
+ namenode.getPublicAddress().getHostName()));
return config;
}
@@ -98,7 +97,7 @@ public class HadoopConfigurationBuilder
Instance jobtracker = cluster
.getInstanceMatching(role(HadoopJobTrackerClusterActionHandler.ROLE));
config.setProperty("mapred.job.tracker", String.format("%s:8021",
- DnsUtil.resolveAddress(jobtracker.getPublicAddress().getHostAddress())));
+ jobtracker.getPublicAddress().getHostName()));
return config;
}
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopNameNodeClusterActionHandler.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopNameNodeClusterActionHandler.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopNameNodeClusterActionHandler.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopNameNodeClusterActionHandler.java Wed Apr 6 16:33:53 2011
@@ -35,7 +35,6 @@ import java.util.Map.Entry;
import java.util.Properties;
import org.apache.commons.configuration.ConfigurationException;
-import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterActionEvent;
@@ -121,11 +120,9 @@ public class HadoopNameNodeClusterAction
InetAddress jobtrackerPublicAddress = namenodePublicAddress;
LOG.info("Namenode web UI available at http://{}:{}",
- DnsUtil.resolveAddress(namenodePublicAddress.getHostAddress()),
- NAMENODE_WEB_UI_PORT);
+ namenodePublicAddress.getHostName(), NAMENODE_WEB_UI_PORT);
LOG.info("Jobtracker web UI available at http://{}:{}",
- DnsUtil.resolveAddress(jobtrackerPublicAddress.getHostAddress()),
- JOBTRACKER_WEB_UI_PORT);
+ jobtrackerPublicAddress.getHostName(), JOBTRACKER_WEB_UI_PORT);
Properties config = createClientSideProperties(clusterSpec, namenodePublicAddress, jobtrackerPublicAddress);
createClientSideHadoopSiteFile(clusterSpec, config);
createProxyScript(clusterSpec, cluster);
@@ -136,8 +133,8 @@ public class HadoopNameNodeClusterAction
InetAddress namenode, InetAddress jobtracker) throws IOException {
Properties config = new Properties();
config.setProperty("hadoop.job.ugi", "root,root");
- config.setProperty("fs.default.name", String.format("hdfs://%s:8020/", DnsUtil.resolveAddress(namenode.getHostAddress())));
- config.setProperty("mapred.job.tracker", String.format("%s:8021", DnsUtil.resolveAddress(jobtracker.getHostAddress())));
+ config.setProperty("fs.default.name", String.format("hdfs://%s:8020/", namenode.getHostName()));
+ config.setProperty("mapred.job.tracker", String.format("%s:8021", jobtracker.getHostName()));
config.setProperty("hadoop.socks.server", "localhost:6666");
config.setProperty("hadoop.rpc.socket.factory.class.default", "org.apache.hadoop.net.SocksSocketFactory");
if (clusterSpec.getProvider().endsWith("ec2")) {
@@ -191,8 +188,7 @@ public class HadoopNameNodeClusterAction
HadoopProxy proxy = new HadoopProxy(clusterSpec, cluster);
InetAddress namenode = HadoopCluster.getNamenodePublicAddress(cluster);
String script = String.format("echo 'Running proxy to Hadoop cluster at %s. " +
- "Use Ctrl-c to quit.'\n",
- DnsUtil.resolveAddress(namenode.getHostAddress()))
+ "Use Ctrl-c to quit.'\n", namenode.getHostName())
+ Joiner.on(" ").join(proxy.getProxyCommand());
Files.write(script, hadoopProxyFile, Charsets.UTF_8);
LOG.info("Wrote Hadoop proxy script {}", hadoopProxyFile);
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java Wed Apr 6 16:33:53 2011
@@ -29,7 +29,6 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
-import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.ClusterSpec;
import org.apache.whirr.ssh.KeyPair;
@@ -57,7 +56,7 @@ public class HadoopProxy {
KeyPair.setPermissionsTo600(identity);
String user = clusterSpec.getClusterUser();
InetAddress namenode = HadoopCluster.getNamenodePublicAddress(cluster);
- String server = DnsUtil.resolveAddress(namenode.getHostAddress());
+ String server = namenode.getHostName();
return new String[] { "ssh",
"-i", identity.getAbsolutePath(),
"-o", "ConnectTimeout=10",
Modified: incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilderTest.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilderTest.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilderTest.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/test/java/org/apache/whirr/service/hadoop/HadoopConfigurationBuilderTest.java Wed Apr 6 16:33:53 2011
@@ -24,8 +24,6 @@ import static org.junit.Assert.assertTha
import com.google.common.collect.Iterators;
import com.google.common.collect.Sets;
-import java.net.InetAddress;
-
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.whirr.service.Cluster;
@@ -73,12 +71,10 @@ public class HadoopConfigurationBuilderT
defaults.addProperty("hadoop-mapreduce.p1", "mapred1");
clusterSpec = ClusterSpec.withTemporaryKeys();
- InetAddress publicAddress = InetAddress.getLocalHost();
- InetAddress privateAddress = publicAddress;
Instance master = new Instance(new Credentials("", ""),
Sets.newHashSet(HadoopNameNodeClusterActionHandler.ROLE,
HadoopJobTrackerClusterActionHandler.ROLE),
- publicAddress, privateAddress, "id");
+ "10.0.0.1", "10.0.0.1", "id");
cluster = new Cluster(Sets.newHashSet(master));
}
Modified: incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java (original)
+++ incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/BasicServerClusterActionHandler.java Wed Apr 6 16:33:53 2011
@@ -24,7 +24,6 @@ import static org.jclouds.scriptbuilder.
import java.io.IOException;
import java.net.InetAddress;
-import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.ClusterActionEvent;
import org.apache.whirr.service.ClusterSpec;
@@ -91,7 +90,7 @@ public class BasicServerClusterActionHan
String hbaseConfigureFunction = getConfiguration(clusterSpec).getString(
HBaseConstants.KEY_CONFIGURE_FUNCTION,
HBaseConstants.FUNCTION_POST_CONFIGURE);
- String master = DnsUtil.resolveAddress(masterPublicAddress.getHostAddress());
+ String master = masterPublicAddress.getHostName();
String quorum = ZooKeeperCluster.getHosts(cluster);
String tarurl = getConfiguration(clusterSpec).getString(
HBaseConstants.KEY_TARBALL_URL);
Modified: incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseCluster.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseCluster.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseCluster.java (original)
+++ incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseCluster.java Wed Apr 6 16:33:53 2011
@@ -21,10 +21,11 @@ package org.apache.whirr.service.hbase;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.RolePredicates;
+import java.io.IOException;
import java.net.InetAddress;
public class HBaseCluster {
- public static InetAddress getMasterPublicAddress(Cluster cluster) {
+ public static InetAddress getMasterPublicAddress(Cluster cluster) throws IOException {
return cluster.getInstanceMatching(
RolePredicates.role(HBaseMasterClusterActionHandler.ROLE))
.getPublicAddress();
Modified: incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java (original)
+++ incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseMasterClusterActionHandler.java Wed Apr 6 16:33:53 2011
@@ -31,7 +31,6 @@ import java.net.InetAddress;
import java.util.Map.Entry;
import java.util.Properties;
-import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterActionEvent;
@@ -93,7 +92,7 @@ public class HBaseMasterClusterActionHan
String hbaseConfigureFunction = getConfiguration(clusterSpec).getString(
HBaseConstants.KEY_CONFIGURE_FUNCTION, HBaseConstants.FUNCTION_POST_CONFIGURE);
- String master = DnsUtil.resolveAddress(masterPublicAddress.getHostAddress());
+ String master = masterPublicAddress.getHostName();
String quorum = ZooKeeperCluster.getHosts(cluster);
String tarurl = getConfiguration(clusterSpec).getString(
HBaseConstants.KEY_TARBALL_URL);
@@ -115,8 +114,7 @@ public class HBaseMasterClusterActionHan
Instance instance = cluster.getInstanceMatching(role(ROLE));
InetAddress masterPublicAddress = instance.getPublicAddress();
- LOG.info("Web UI available at http://{}",
- DnsUtil.resolveAddress(masterPublicAddress.getHostAddress()));
+ LOG.info("Web UI available at http://{}", masterPublicAddress.getHostName());
String quorum = ZooKeeperCluster.getHosts(cluster);
Properties config = createClientSideProperties(masterPublicAddress, quorum);
createClientSideHadoopSiteFile(clusterSpec, config);
@@ -173,8 +171,7 @@ public class HBaseMasterClusterActionHan
HadoopProxy proxy = new HadoopProxy(clusterSpec, cluster);
InetAddress master = HBaseCluster.getMasterPublicAddress(cluster);
String script = String.format("echo 'Running proxy to HBase cluster at %s. " +
- "Use Ctrl-c to quit.'\n",
- DnsUtil.resolveAddress(master.getHostAddress()))
+ "Use Ctrl-c to quit.'\n", master.getHostName())
+ Joiner.on(" ").join(proxy.getProxyCommand());
Files.write(script, hbaseProxyFile, Charsets.UTF_8);
LOG.info("Wrote HBase proxy script {}", hbaseProxyFile);
Modified: incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java (original)
+++ incubator/whirr/trunk/services/hbase/src/main/java/org/apache/whirr/service/hbase/HBaseRegionServerClusterActionHandler.java Wed Apr 6 16:33:53 2011
@@ -24,7 +24,6 @@ import static org.jclouds.scriptbuilder.
import java.io.IOException;
import java.net.InetAddress;
-import org.apache.whirr.net.DnsUtil;
import org.apache.whirr.service.Cluster;
import org.apache.whirr.service.Cluster.Instance;
import org.apache.whirr.service.ClusterActionEvent;
@@ -82,7 +81,7 @@ public class HBaseRegionServerClusterAct
String hbaseConfigureFunction = getConfiguration(clusterSpec).getString(
HBaseConstants.KEY_CONFIGURE_FUNCTION,
HBaseConstants.FUNCTION_POST_CONFIGURE);
- String master = DnsUtil.resolveAddress(masterPublicAddress.getHostAddress());
+ String master = masterPublicAddress.getHostName();
String quorum = ZooKeeperCluster.getHosts(cluster);
String tarurl = getConfiguration(clusterSpec).getString(
HBaseConstants.KEY_TARBALL_URL);
Modified: incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java?rev=1089527&r1=1089526&r2=1089527&view=diff
==============================================================================
--- incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java (original)
+++ incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperClusterActionHandler.java Wed Apr 6 16:33:53 2011
@@ -92,7 +92,7 @@ public class ZooKeeperClusterActionHandl
new Function<Instance, String>() {
@Override
public String apply(Instance instance) {
- return instance.getPrivateAddress().getHostAddress();
+ return instance.getPrivateIp();
}
});
}
@@ -102,8 +102,12 @@ public class ZooKeeperClusterActionHandl
new Function<Instance, String>() {
@Override
public String apply(Instance instance) {
- String publicIp = instance.getPublicAddress().getHostName();
- return String.format("%s:%d", publicIp, CLIENT_PORT);
+ try {
+ String publicIp = instance.getPublicHostName();
+ return String.format("%s:%d", publicIp, CLIENT_PORT);
+ } catch (IOException e) {
+ throw new IllegalArgumentException(e);
+ }
}
});
}