/** * Returns {@code true} if running in local mode. */ static boolean isLocal(ProgramOptions programOptions) { return !Boolean.parseBoolean(programOptions.getArguments().getOption(DISTRIBUTED_MODE)); }
/** * Returns {@code true} if running in local mode. */ static boolean isLocal(ProgramOptions programOptions) { return !Boolean.parseBoolean(programOptions.getArguments().getOption(DISTRIBUTED_MODE)); }
@Nullable private TriggeringScheduleInfo getTriggeringScheduleInfo(ProgramOptions programOptions) { String scheduleInfoString = programOptions.getArguments().getOption(ProgramOptionConstants.TRIGGERING_SCHEDULE_INFO); return scheduleInfoString == null ? null : GSON.fromJson(scheduleInfoString, TriggeringScheduleInfo.class); }
@Nullable private TriggeringScheduleInfo getTriggeringScheduleInfo(ProgramOptions programOptions) { String scheduleInfoString = programOptions.getArguments().getOption(ProgramOptionConstants.TRIGGERING_SCHEDULE_INFO); return scheduleInfoString == null ? null : GSON.fromJson(scheduleInfoString, TriggeringScheduleInfo.class); }
/** * Returns the application principal if there is one. * * @param programOptions the program options to extract information from * @return the application principal or {@code null} if no application principal is available. */ @Nullable public static KerberosPrincipalId getApplicationPrincipal(ProgramOptions programOptions) { Arguments systemArgs = programOptions.getArguments(); boolean hasAppPrincipal = Boolean.parseBoolean(systemArgs.getOption(ProgramOptionConstants.APP_PRINCIPAL_EXISTS)); return hasAppPrincipal ? new KerberosPrincipalId(systemArgs.getOption(ProgramOptionConstants.PRINCIPAL)) : null; }
/** * Returns the {@link ArtifactId} stored inside the given {@link ProgramOptions#getArguments()}. */ public static ArtifactId getArtifactId(ProgramOptions programOptions) { String id = programOptions.getArguments().getOption(ProgramOptionConstants.ARTIFACT_ID); Preconditions.checkArgument(id != null, "Missing " + ProgramOptionConstants.ARTIFACT_ID + " in program options"); return ArtifactId.fromIdParts(Splitter.on(':').split(id)); }
/** * Returns the {@link RunId} stored inside the given {@link ProgramOptions#getArguments()}. * * @throws IllegalArgumentException if the given options doesn't contain run id. */ public static RunId getRunId(ProgramOptions programOptions) { String id = programOptions.getArguments().getOption(ProgramOptionConstants.RUN_ID); Preconditions.checkArgument(id != null, "Missing " + ProgramOptionConstants.RUN_ID + " in program options"); return RunIds.fromString(id); }
/** * Static helper method to return the secure keys location from the given {@link ProgramOptions}. */ private static Location getKeysDirLocation(ProgramOptions programOptions, LocationFactory locationFactory) { return locationFactory.create( GSON.fromJson(programOptions.getArguments().getOption(ProgramOptionConstants.SECURE_KEYS_DIR), URI.class)); }
/** * Static helper method to return the secure keys location from the given {@link ProgramOptions}. */ private static Location getKeysDirLocation(ProgramOptions programOptions, LocationFactory locationFactory) { return locationFactory.create( GSON.fromJson(programOptions.getArguments().getOption(ProgramOptionConstants.SECURE_KEYS_DIR), URI.class)); }
/** * Returns the {@link ClusterMode} stored inside the given {@link ProgramOptions#getArguments()}. */ public static ClusterMode getClusterMode(ProgramOptions programOptions) { String clusterMode = programOptions.getArguments().getOption(ProgramOptionConstants.CLUSTER_MODE); // Default to ON_PREMISE for backward compatibility. return clusterMode == null ? ClusterMode.ON_PREMISE : ClusterMode.valueOf(clusterMode); }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
/** * Returns the {@link ClusterMode} stored inside the given {@link ProgramOptions#getArguments()}. */ public static ClusterMode getClusterMode(ProgramOptions programOptions) { String clusterMode = programOptions.getArguments().getOption(ProgramOptionConstants.CLUSTER_MODE); // Default to ON_PREMISE for backward compatibility. return clusterMode == null ? ClusterMode.ON_PREMISE : ClusterMode.valueOf(clusterMode); }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
private static Injector createInjector(CConfiguration cConf, Configuration hConf) { MapReduceContextConfig mapReduceContextConfig = new MapReduceContextConfig(hConf); // principal will be null if running on a kerberos distributed cluster ProgramOptions programOptions = mapReduceContextConfig.getProgramOptions(); Arguments systemArgs = programOptions.getArguments(); String runId = systemArgs.getOption(ProgramOptionConstants.RUN_ID); return Guice.createInjector( new DistributedProgramContainerModule(cConf, hConf, mapReduceContextConfig.getProgramId().run(runId), systemArgs) ); } }
ClusterKeyInfo(ProgramOptions programOptions, LocationFactory locationFactory) throws IOException, GeneralSecurityException { Arguments systemArgs = programOptions.getArguments(); Location keysDir = getKeysDirLocation(programOptions, locationFactory); this.cluster = GSON.fromJson(systemArgs.getOption(ProgramOptionConstants.CLUSTER), Cluster.class); this.sshConfig = createSSHConfig(cluster, keysDir); this.serverKeyStore = KeyStores.load(keysDir.append(Constants.RuntimeMonitor.SERVER_KEYSTORE), () -> ""); this.clientKeyStore = KeyStores.load(keysDir.append(Constants.RuntimeMonitor.CLIENT_KEYSTORE), () -> ""); }
private static Injector createInjector(CConfiguration cConf, Configuration hConf) { MapReduceContextConfig mapReduceContextConfig = new MapReduceContextConfig(hConf); // principal will be null if running on a kerberos distributed cluster ProgramOptions programOptions = mapReduceContextConfig.getProgramOptions(); Arguments systemArgs = programOptions.getArguments(); String runId = systemArgs.getOption(ProgramOptionConstants.RUN_ID); return Guice.createInjector( new DistributedProgramContainerModule(cConf, hConf, mapReduceContextConfig.getProgramId().run(runId), systemArgs) ); } }
@Override protected void setupLaunchConfig(ProgramLaunchConfig launchConfig, Program program, ProgramOptions options, CConfiguration cConf, Configuration hConf, File tempDir) { ApplicationSpecification appSpec = program.getApplicationSpecification(); WorkerSpecification workerSpec = appSpec.getWorkers().get(program.getName()); String instances = options.getArguments().getOption(ProgramOptionConstants.INSTANCES, String.valueOf(workerSpec.getInstances())); launchConfig.addRunnable(workerSpec.getName(), new WorkerTwillRunnable(workerSpec.getName()), Integer.parseInt(instances), options.getUserArguments().asMap(), workerSpec.getResources()); } }