2013-07-16 18 views
0

我有一個引導腳本,它與我的EMR作業一起運行。 我需要一個參數傳遞給這個腳本,所以我可以如何在EMR作業中傳遞參數以在引導腳本中使用

我使用C#配置針對不同的環境 在我的腳本中的以下行需要使用它 路徑= OVA/{EnvironmentName} /腳本/ UniqueUsers路徑調用流式EMR作業。我在創建工作時如何通過這個論點?

HadoopJarStepConfig config = new StreamingStep() 
       .WithInputs(input) 
       .WithOutput(output) 
       .WithMapper(configMapperLocation) 
       .WithReducer(configReducerLocation) 
       .ToHadoopJarStepConfig(); 

      string configName = string.Format("Unique_Users_config_{0}", outputFolder); 
      StepConfig uniqueUsersDaily = new StepConfig() 
       .WithName(configName) 
       .WithActionOnFailure("TERMINATE_JOB_FLOW") 
       .WithHadoopJarStep(config); 

      ScriptBootstrapActionConfig bootstrapActionScript = new ScriptBootstrapActionConfig() 
       .WithPath(configBootStrapScriptLocation); 

      BootstrapActionConfig bootstrapAction = new BootstrapActionConfig() 
       .WithName("CustomAction") 
       .WithScriptBootstrapAction(bootstrapActionScript); 

      string jobName = string.Format("Unique_User_DailyJob_{0}", outputFolder); 
      RunJobFlowRequest jobRequest = new RunJobFlowRequest() 
       .WithName(jobName) 
       .WithBootstrapActions(bootstrapAction) 
       .WithSteps(uniqueUsersDaily) 
       .WithLogUri(configHadoopLogLocation) 
       .WithInstances(new JobFlowInstancesConfig() 
            .WithHadoopVersion(configHadoopVersion) 
            .WithInstanceCount(2) 
            .WithKeepJobFlowAliveWhenNoSteps(false) 
            .WithMasterInstanceType(configMasterInstanceType) 
            .WithSlaveInstanceType(configSlaveInstanceType)); 

回答

1

您可以使用ScriptBootstrapActionConfigwithArgs(),在Java中,你可以做如下,我肯定是C#類似的方法:

ScriptBootstrapActionConfig bootstrapActionScript = new ScriptBootstrapActionConfig() 
       .WithPath(configBootStrapScriptLocation) 
       .WithArgs(List<String> args); 
+0

是的,有在C#中,它這樣的場作品。謝謝阿馬爾 – user2330278

+0

你應該接受答案的朋友。 – Amar

相關問題