package hdgl.db.server.app; import java.io.IOException; import java.net.InetSocketAddress; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.yarn.api.protocolrecords.*; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.api.ClientRMProtocol; import org.apache.hadoop.yarn.util.Records; public class Runner { private static final Log LOG = LogFactory.getLog(Runner.class); public void submitApp(Configuration conf) throws IOException{ ClientRMProtocol applicationsManager; YarnConfiguration yarnConf = new YarnConfiguration(conf); InetSocketAddress rmAddress = NetUtils.createSocketAddr(yarnConf.get( YarnConfiguration.RM_ADDRESS, YarnConfiguration.DEFAULT_RM_ADDRESS)); LOG.info("Connecting to ResourceManager at " + rmAddress); Configuration appsManagerServerConf = new Configuration(conf); // appsManagerServerConf.setClass( // YarnConfiguration.YARN_SECURITY_INFO, // ClientRMSecurityInfo.class, SecurityInfo.class); applicationsManager = ((ClientRMProtocol) RPC.getProxy( ClientRMProtocol.class, 0, rmAddress, appsManagerServerConf)); GetNewApplicationRequest request = Records.newRecord(GetNewApplicationRequest.class); GetNewApplicationResponse response = applicationsManager.getNewApplication(request); LOG.info("Got new ApplicationId=" + response.getApplicationId()); } public static void main(String[] args) throws IOException{ Configuration conf =new Configuration(); new Runner().submitApp(conf); } }