Search in sources :

Example 6 with Node

use of io.cdap.cdap.runtime.spi.provisioner.Node in project cdap by caskdata.

the class ElasticMapReduceProvisioner method getMasterExternalIp.

private String getMasterExternalIp(Cluster cluster) {
    Node masterNode = cluster.getNodes().stream().filter(node -> Node.Type.MASTER == node.getType()).findFirst().orElseThrow(() -> new IllegalArgumentException("Cluster has no node of master type: " + cluster));
    String ip = masterNode.getIpAddress();
    if (ip == null) {
        throw new IllegalArgumentException(String.format("External IP is not defined for node '%s' in cluster %s", masterNode.getId(), cluster));
    }
    return ip;
}
Also used : Node(io.cdap.cdap.runtime.spi.provisioner.Node)

Example 7 with Node

use of io.cdap.cdap.runtime.spi.provisioner.Node in project cdap by caskdata.

the class RemoteHadoopProvisioner method createCluster.

@Override
public Cluster createCluster(ProvisionerContext context) {
    RemoteHadoopConf conf = RemoteHadoopConf.fromProperties(context.getProperties());
    context.getSSHContext().setSSHKeyPair(conf.getKeyPair());
    Collection<Node> nodes = Collections.singletonList(new Node(conf.getHost(), Node.Type.MASTER, conf.getHost(), 0, Collections.emptyMap()));
    Map<String, String> properties = new HashMap<>();
    String principal = conf.getKerberosPrincipal();
    String keytab = conf.getKerberosKeytabPath();
    if (principal != null && keytab != null) {
        properties.put(ClusterProperties.KERBEROS_PRINCIPAL, principal);
        properties.put(ClusterProperties.KERBEROS_KEYTAB, keytab);
    }
    return new Cluster(conf.getHost(), ClusterStatus.RUNNING, nodes, properties);
}
Also used : HashMap(java.util.HashMap) Node(io.cdap.cdap.runtime.spi.provisioner.Node) Cluster(io.cdap.cdap.runtime.spi.provisioner.Cluster)

Example 8 with Node

use of io.cdap.cdap.runtime.spi.provisioner.Node in project cdap by cdapio.

the class DefaultRuntimeJobTest method testInjector.

@Test
public void testInjector() throws Exception {
    CConfiguration cConf = CConfiguration.create();
    cConf.set(Constants.CFG_LOCAL_DATA_DIR, TEMP_FOLDER.newFolder().toString());
    LocationFactory locationFactory = new LocalLocationFactory(TEMP_FOLDER.newFile());
    DefaultRuntimeJob defaultRuntimeJob = new DefaultRuntimeJob();
    Arguments systemArgs = new BasicArguments(Collections.singletonMap(SystemArguments.PROFILE_NAME, "test"));
    Node node = new Node("test", Node.Type.MASTER, "127.0.0.1", System.currentTimeMillis(), Collections.emptyMap());
    Cluster cluster = new Cluster("test", ClusterStatus.RUNNING, Collections.singleton(node), Collections.emptyMap());
    ProgramRunId programRunId = NamespaceId.DEFAULT.app("app").workflow("workflow").run(RunIds.generate());
    SimpleProgramOptions programOpts = new SimpleProgramOptions(programRunId.getParent(), systemArgs, new BasicArguments());
    Injector injector = Guice.createInjector(defaultRuntimeJob.createModules(new RuntimeJobEnvironment() {

        @Override
        public LocationFactory getLocationFactory() {
            return locationFactory;
        }

        @Override
        public TwillRunner getTwillRunner() {
            return new NoopTwillRunnerService();
        }

        @Override
        public Map<String, String> getProperties() {
            return Collections.emptyMap();
        }
    }, cConf, programRunId, programOpts));
    injector.getInstance(LogAppenderInitializer.class);
    defaultRuntimeJob.createCoreServices(injector, systemArgs, cluster);
}
Also used : Node(io.cdap.cdap.runtime.spi.provisioner.Node) Arguments(io.cdap.cdap.app.runtime.Arguments) SystemArguments(io.cdap.cdap.internal.app.runtime.SystemArguments) BasicArguments(io.cdap.cdap.internal.app.runtime.BasicArguments) Cluster(io.cdap.cdap.runtime.spi.provisioner.Cluster) CConfiguration(io.cdap.cdap.common.conf.CConfiguration) LocalLocationFactory(org.apache.twill.filesystem.LocalLocationFactory) LocationFactory(org.apache.twill.filesystem.LocationFactory) NoopTwillRunnerService(io.cdap.cdap.common.twill.NoopTwillRunnerService) Injector(com.google.inject.Injector) RuntimeJobEnvironment(io.cdap.cdap.runtime.spi.runtimejob.RuntimeJobEnvironment) BasicArguments(io.cdap.cdap.internal.app.runtime.BasicArguments) ProgramRunId(io.cdap.cdap.proto.id.ProgramRunId) SimpleProgramOptions(io.cdap.cdap.internal.app.runtime.SimpleProgramOptions) LocalLocationFactory(org.apache.twill.filesystem.LocalLocationFactory) Test(org.junit.Test)

Example 9 with Node

use of io.cdap.cdap.runtime.spi.provisioner.Node in project cdap by cdapio.

the class EMRClient method getCluster.

/**
 * Get information about the specified cluster. The cluster will not be present if it could not be found.
 *
 * @param id the cluster id
 * @return the cluster information if it exists
 */
public Optional<io.cdap.cdap.runtime.spi.provisioner.Cluster> getCluster(String id) {
    Cluster cluster = describeCluster(id);
    List<Node> nodes = new ArrayList<>();
    nodes.add(new Node("id", Node.Type.MASTER, cluster.getMasterPublicDnsName(), System.currentTimeMillis(), Collections.emptyMap()));
    return Optional.of(new io.cdap.cdap.runtime.spi.provisioner.Cluster(cluster.getId(), convertStatus(cluster.getStatus()), nodes, Collections.emptyMap()));
}
Also used : Node(io.cdap.cdap.runtime.spi.provisioner.Node) ArrayList(java.util.ArrayList) Cluster(com.amazonaws.services.elasticmapreduce.model.Cluster)

Example 10 with Node

use of io.cdap.cdap.runtime.spi.provisioner.Node in project cdap by cdapio.

the class ElasticMapReduceProvisioner method getMasterExternalIp.

private String getMasterExternalIp(Cluster cluster) {
    Node masterNode = cluster.getNodes().stream().filter(node -> Node.Type.MASTER == node.getType()).findFirst().orElseThrow(() -> new IllegalArgumentException("Cluster has no node of master type: " + cluster));
    String ip = masterNode.getIpAddress();
    if (ip == null) {
        throw new IllegalArgumentException(String.format("External IP is not defined for node '%s' in cluster %s", masterNode.getId(), cluster));
    }
    return ip;
}
Also used : Node(io.cdap.cdap.runtime.spi.provisioner.Node)

Aggregations

Node (io.cdap.cdap.runtime.spi.provisioner.Node)12 Cluster (io.cdap.cdap.runtime.spi.provisioner.Cluster)4 HashMap (java.util.HashMap)4 Cluster (com.amazonaws.services.elasticmapreduce.model.Cluster)2 GoogleJsonResponseException (com.google.api.client.googleapis.json.GoogleJsonResponseException)2 AccessConfig (com.google.api.services.compute.model.AccessConfig)2 Instance (com.google.api.services.compute.model.Instance)2 Injector (com.google.inject.Injector)2 Arguments (io.cdap.cdap.app.runtime.Arguments)2 CConfiguration (io.cdap.cdap.common.conf.CConfiguration)2 NoopTwillRunnerService (io.cdap.cdap.common.twill.NoopTwillRunnerService)2 BasicArguments (io.cdap.cdap.internal.app.runtime.BasicArguments)2 SimpleProgramOptions (io.cdap.cdap.internal.app.runtime.SimpleProgramOptions)2 SystemArguments (io.cdap.cdap.internal.app.runtime.SystemArguments)2 ProgramRunId (io.cdap.cdap.proto.id.ProgramRunId)2 RuntimeJobEnvironment (io.cdap.cdap.runtime.spi.runtimejob.RuntimeJobEnvironment)2 ParseException (java.text.ParseException)2 SimpleDateFormat (java.text.SimpleDateFormat)2 ArrayList (java.util.ArrayList)2 LocalLocationFactory (org.apache.twill.filesystem.LocalLocationFactory)2