public IDriverHttpEndpoint SubmitAndGetDriverUrl(IJobSubmission jobSubmission) { // Prepare the job submission folder var driverFolderPath = CreateDriverFolder(jobSubmission.JobIdentifier); Logger.Log(Level.Info, "Preparing driver folder in " + driverFolderPath); Launch(jobSubmission, driverFolderPath); var pointerFileName = Path.Combine(driverFolderPath, _fileNames.DriverHttpEndpoint); var httpClient = new HttpClientHelper(); _driverUrl = httpClient.GetDriverUrlForYarn(pointerFileName); return httpClient; }
public IDriverHttpEndpoint SubmitAndGetDriverUrl(IJobSubmission jobSubmission) { // Prepare the job submission folder var jobFolder = CreateJobFolder(jobSubmission.JobIdentifier); var driverFolder = Path.Combine(jobFolder, DriverFolderName); Logger.Log(Level.Info, "Preparing driver folder in " + driverFolder); _driverFolderPreparationHelper.PrepareDriverFolder(jobSubmission, driverFolder); //TODO: Remove this when we have a generalized way to pass config to java var javaParams = TangFactory.GetTang() .NewInjector(jobSubmission.DriverConfigurations.ToArray()) .GetInstance<ClrClient2JavaClientCuratedParameters>(); Task.Run(() => _javaClientLauncher.Launch(JavaClassName, driverFolder, jobSubmission.JobIdentifier, _numberOfEvaluators.ToString(), javaParams.TcpPortRangeStart.ToString(), javaParams.TcpPortRangeCount.ToString(), javaParams.TcpPortRangeTryCount.ToString() )); var fileName = Path.Combine(driverFolder, _fileNames.DriverHttpEndpoint); HttpClientHelper helper = new HttpClientHelper(); _driverUrl = helper.GetDriverUrlForLocalRuntime(fileName); Logger.Log(Level.Info, "Submitted the Driver for execution. Returned driverUrl is: " + _driverUrl); return helper; }