static int Run(string[] args) { Flags.Parse(ConfigurationManager.AppSettings); args = Flags.Parse(args); if (ShowHelp.BooleanValue || args.Length == 0) { Console.Error.WriteLine(Usage); return(0); } if (!File.Exists(args[0])) { Console.Error.WriteLine("Error: Naiad program {0} does not exist.", args[0]); Console.Error.WriteLine(Usage); return(-1); } AzureSubscriptions subscriptionManagement = new AzureSubscriptions(); if (AzureSubscriptionId.IsSet && AzureCertificateThumbprint.IsSet) { subscriptionManagement.AddSubscription(AzureSubscriptionId.StringValue, AzureCertificateThumbprint.StringValue); } string clusterName = null; if (AzureClusterName.IsSet) { clusterName = AzureClusterName.StringValue; if (AzureStorageAccountName.IsSet && AzureStorageAccountKey.IsSet) { subscriptionManagement.SetClusterAccountAsync(clusterName, AzureStorageAccountName.StringValue, AzureStorageAccountKey.StringValue).Wait(); } } else { IEnumerable <AzureCluster> clusters = subscriptionManagement.GetClusters(); if (clusters.Count() == 1) { clusterName = clusters.Single().Name; } else { Console.Error.WriteLine("Error: Cluster name must be specified unless there is a single configured cluster in default and supplied subscriptions"); Console.Error.WriteLine(Usage); return(-1); } } AzureCluster cluster; try { cluster = subscriptionManagement.GetClusterAsync(clusterName).Result; } catch (Exception) { Console.Error.WriteLine("Error: Failed to find cluster " + clusterName + " in default or supplied subscriptions"); Console.Error.WriteLine(Usage); return(-1); } if (cluster == null) { Console.Error.WriteLine("Error: Failed to find cluster {0} in default or supplied subscriptions", clusterName); Console.Error.WriteLine(Usage); return(-1); } string containerName = "staging"; if (AzureStorageContainerName.IsSet) { containerName = AzureStorageContainerName.StringValue; } // The args are augmented with an additional setting containing the Azure connection string. args = args.Concat(new string[] { "--addsetting", "Microsoft.Research.Naiad.Cluster.Azure.DefaultConnectionString", string.Format("\"DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}\"", cluster.StorageAccount.Split('.').First(), cluster.StorageKey) }).ToArray(); Console.Error.WriteLine("Submitting job with args: {0}", string.Join(" ", args)); AzureDfsClient azureDfs = new AzureDfsClient(cluster.StorageAccount, cluster.StorageKey, containerName); AzureYarnClient azureYarn = new AzureYarnClient(subscriptionManagement, azureDfs, ConfigHelpers.GetPPMHome(null), clusterName); AzureYarnSubmission submission = new AzureYarnSubmission(azureDfs, azureYarn, NumHosts, args); submission.Submit(); return(submission.Join()); }
public AzureYarnSubmission(AzureYarnClient yarnClient, Uri baseUri, int numberOfProcesses, string[] args) : base(yarnClient, baseUri, null, -1, numberOfProcesses, -1, args) { }
public AzureYarnSubmission(AzureDfsClient dfsClient, AzureYarnClient yarnClient, int numberOfProcesses, string[] args) : base(dfsClient, yarnClient, numberOfProcesses, args) { }