use of com.sequenceiq.cloudbreak.orchestrator.yarn.model.core.YarnComponent in project cloudbreak by hortonworks.
the class ApplicationSubmissionHandler method submitApplication.
public void submitApplication(ContainerConfig config, OrchestrationCredential cred, ContainerConstraint constraint, int componentNumber) throws CloudbreakOrchestratorFailedException {
// Set Ambari DB hostname, if available
if (ComponentType.AMBARIDB.equals(applicationUtils.getComponentType(constraint))) {
ambariDbHostname = applicationUtils.getComponentHostName(constraint, cred, componentNumber);
}
// Set Ambari Server hostname, if available
if (ComponentType.AMBARISERVER.equals(applicationUtils.getComponentType(constraint))) {
ambariServerHostname = applicationUtils.getComponentHostName(constraint, cred, componentNumber);
}
// Application level attributes
String applicationName = applicationUtils.getApplicationName(constraint, componentNumber);
CreateApplicationRequest createApplicationRequest = new CreateApplicationRequest();
createApplicationRequest.setName(applicationName);
createApplicationRequest.setQueue(config.getQueue());
createApplicationRequest.setLifetime(UNLIMITED);
// Define the artifact (docker image) for the component
Artifact artifact = new Artifact();
artifact.setId(getDockerImageName(config));
artifact.setType("DOCKER");
// Define the resources for the component
Resource resource = new Resource();
resource.setCpus(getCpusForContainerType(constraint));
resource.setMemory(getMemForContainerType(constraint));
// Add the component
List<YarnComponent> components = new ArrayList<>();
YarnComponent component = new YarnComponent();
component.setName(applicationUtils.getComponentName(constraint, componentNumber));
component.setNumberOfContainers(ONE);
component.setLaunchCommand(getFullEntrypoint(constraint, cred, componentNumber));
component.setArtifact(artifact);
component.setDependencies(new ArrayList<>());
component.setResource(resource);
component.setRunPrivilegedContainer(true);
components.add(component);
createApplicationRequest.setComponents(components);
// Submit the request
YarnClient yarnHttpClient = new YarnHttpClient(cred.getApiEndpoint());
try {
submitCreateApplicationRequest(createApplicationRequest, yarnHttpClient);
} catch (RuntimeException e) {
throw new CloudbreakOrchestratorFailedException(e);
}
}
use of com.sequenceiq.cloudbreak.orchestrator.yarn.model.core.YarnComponent in project cloudbreak by hortonworks.
the class CreateApplicationToJsonConverterTest method testConvert.
@Test
public void testConvert() throws Exception {
// CreateApplicationRequest object
CreateApplicationRequest createApplicationRequest = new CreateApplicationRequest();
createApplicationRequest.setName(NAME);
createApplicationRequest.setLifetime(LIFETIME);
createApplicationRequest.setComponents(COMPONENTS);
// Create a component
YarnComponent component = new YarnComponent();
// Create the Dependency
Dependency dependency = new Dependency();
dependency.setItem(DEPENDENCY_ITEM);
DEPENDENCIES.add(dependency);
// Create the Artifact
Artifact artifact = new Artifact();
artifact.setId(ARTIFACT_ID);
artifact.setType(ARTIFACT_TYPE);
// Create the Resource
Resource resource = new Resource();
resource.setCpus(RESOURCE_CPUS);
resource.setMemory(RESOURCE_MEMORY);
// Populate the component
component.setName(COMPONENT_NAME);
component.setDependencies(DEPENDENCIES);
component.setNumberOfContainers(NUM_OF_CONTAINTERS);
component.setArtifact(artifact);
component.setLaunchCommand(LAUNCH_COMMAND);
component.setResource(resource);
// Add the component to the Create Application Request
COMPONENTS.add(component);
CreateApplicationRequestToJsonConverter createApplicationRequestToJsonConverter = new CreateApplicationRequestToJsonConverter();
String jsonResult = createApplicationRequestToJsonConverter.convert(createApplicationRequest);
LOGGER.info(jsonResult);
}
use of com.sequenceiq.cloudbreak.orchestrator.yarn.model.core.YarnComponent in project cloudbreak by hortonworks.
the class ComponentTest method testNumberOfContainers.
@Test
public void testNumberOfContainers() {
YarnComponent component = new YarnComponent();
component.setNumberOfContainers(NUM_OF_CONTAINERS);
assertEquals(NUM_OF_CONTAINERS, component.getNumberOfContainers());
}
use of com.sequenceiq.cloudbreak.orchestrator.yarn.model.core.YarnComponent in project cloudbreak by hortonworks.
the class ComponentTest method testDependencies.
@Test
public void testDependencies() {
Dependency dependency = new Dependency();
YarnComponent component = new YarnComponent();
List<Dependency> dependencies = new ArrayList<>();
dependencies.add(dependency);
component.setDependencies(dependencies);
assertEquals(1, component.getDependencies().size());
}
use of com.sequenceiq.cloudbreak.orchestrator.yarn.model.core.YarnComponent in project cloudbreak by hortonworks.
the class ComponentTest method testLaunchCommand.
@Test
public void testLaunchCommand() {
YarnComponent component = new YarnComponent();
component.setLaunchCommand(LAUNCH_COMMAND);
assertEquals(LAUNCH_COMMAND, component.getLaunchCommand());
}
Aggregations