All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.yarn.config.annotation.builders.YarnAppmasterConfigurer Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2013 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.yarn.config.annotation.builders;

import org.springframework.yarn.am.YarnAppmaster;
import org.springframework.yarn.config.annotation.SpringYarnConfigurerAdapter;
import org.springframework.yarn.config.annotation.configurers.DefaultMasterContainerAllocatorConfigurer;
import org.springframework.yarn.config.annotation.configurers.DefaultMasterContainerRunnerConfigurer;
import org.springframework.yarn.config.annotation.configurers.MasterContainerAllocatorConfigurer;
import org.springframework.yarn.config.annotation.configurers.MasterContainerRunnerConfigurer;

/**
 * {@code YarnAppmasterConfigure} is an interface for {@code YarnAppmasterBuilder} which is
 * exposed to user via {@link SpringYarnConfigurerAdapter}.
 * 

* Typically configuration is shown below. *
*

 * @Configuration
 * @EnableYarn(enable=Enable.APPMASTER)
 * static class Config extends SpringYarnConfigurerAdapter {
 *
 *   @Override
 *   public void configure(YarnAppmasterConfigure master) throws Exception {
 *     master
 *       .appmasterClass(MyAppmaster.class)
 *       .withContainerRunner();
 *   }
 *
 * }
 * 
* * @author Janne Valkealahti * */ public interface YarnAppmasterConfigurer { /** * Specify a container runner for Appmaster. Applies a new * {@link DefaultMasterContainerRunnerConfigurer} into a current builder. * *
*
JavaConfig: *
*
	 *
	 * public void configure(YarnAppmasterConfigure master) throws Exception {
	 *   Properties properties = new Properties();
	 *   properties.setProperty("foo1", "bar1");
	 *   master
	 *     .withContainerRunner()
	 *       .arguments(properties)
	 *       .argument("foo2", "bar2");
	 * }
	 * 
* *
XML: *
*
	 * <util:properties id="arguments">
	 *   <prop key="foo1">bar1</prop>
	 *   <prop key="foo2">bar2</prop>
	 * </util:properties>
	 *
	 * <yarn:master>
	 *   <yarn:container-runner arguments="arguments"/>
	 * </yarn:master>
	 * 
* * @return {@link MasterContainerRunnerConfigurer} for chaining * @throws Exception exception */ MasterContainerRunnerConfigurer withContainerRunner() throws Exception; /** * Specify a container allocator for Appmaster. Applies a new * {@link DefaultMasterContainerAllocatorConfigurer} into a current builder. * *
*
JavaConfig: *
*
	 *
	 * public void configure(YarnAppmasterConfigure master) throws Exception {
	 *   master
	 *     .withContainerAllocator()
	 *       .priority(0)
	 *       .virtualCores(1)
	 *       .memory(1024);
	 * }
	 * 
* *
XML: *
*
	 * <yarn:master>
	 *   <yarn:container-allocator priority="0" virtualcores="1" memory="1024"/>
	 * </yarn:master>
	 * 
* * @return {@link MasterContainerAllocatorConfigurer} for chaining * @throws Exception exception */ MasterContainerAllocatorConfigurer withContainerAllocator() throws Exception; /** * Specify a raw array of commands used to start a container. * *
*
JavaConfig: *
*
	 * public void configure(YarnAppmasterConfigure master) throws Exception {
	 *   master
	 *     .containerCommands("date", "1><LOG_DIR>/Container.stdout", "2><LOG_DIR>/Container.stderr");
	 * }
	 * 
* *
XML: *
*
	 * <yarn:master>
	 *   <yarn:container-command>
	 *     <![CDATA[
	 *     date
	 *     1><LOG_DIR>/Container.stdout
	 *     2><LOG_DIR>/Container.stderr
	 *     ]]>
	 *   </yarn:container-command>
	 * </yarn:master>
	 * 
* * @param commands The Yarn container commands * @return {@link YarnAppmasterConfigurer} for chaining */ YarnAppmasterConfigurer containerCommands(String[] commands); /** * Specify a raw array of commands used to start a container. This method * also allows to associate commands with an identifier which is used * for example with container groups where different commands are used. * * @param id the commands identifier * @param commands The Yarn container commands * @return {@link YarnAppmasterConfigurer} for chaining * @see #containerCommands(String[]) */ YarnAppmasterConfigurer containerCommands(String id, String[] commands); /** * Specify a {@code YarnAppmaster} class. * *
*
JavaConfig: *
*
	 * public void configure(YarnAppmasterConfigure master) throws Exception {
	 *   master
	 *     .appmasterClass(MyYarnAppmaster.class);
	 * }
	 * 
* *
XML: *
*
	 * <yarn:master appmaster-class="com.example.MyYarnAppmaster"/>
	 * 
* * @param clazz The Yarn appmaster class * @return {@link YarnAppmasterConfigurer} for chaining */ YarnAppmasterConfigurer appmasterClass(Class clazz); /** * Specify a {@code YarnAppmaster} as a fully qualified class name. * *
*
JavaConfig: *
*
	 * public void configure(YarnAppmasterConfigure master) throws Exception {
	 *   master
	 *     .appmasterClass(MyYarnAppmaster.class);
	 * }
	 * 
* *
XML: *
* No equivalent * * @param clazz The Yarn appmaster class * @return {@link YarnAppmasterConfigurer} for chaining */ YarnAppmasterConfigurer appmasterClass(String clazz); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy