2013年2月4日星期一

JavaコードでEMRのDebugモードを有効する

EMRのジョブフローを起動する時、Debugモードを設定できる。Debugモードが有効にされると、EMRのジョブが実行される時にジョブの詳細情報が見える。MapReduceプログラムの開発にとても有用な機能である。ウェブページでEMRのジョブフローを起動すると、「enable debug」をチェックすればいい。JavaコードでEMRのジョブフローを起動すると、一つのstepの形式でdebugモードを有効する。このように:

JobFlowInstancesConfig instances = new JobFlowInstancesConfig();
/** instancesのいろいろな設定
 *  ......
 */
  
RunJobFlowRequest request = new RunJobFlowRequest("MyEMRJob", instances);

HadoopJarStepConfig debugJarConfig = new HadoopJarStepConfig("s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar");
debugJarConfig.setArgs(Arrays.asList(new String[] {"s3://us-east-1.elasticmapreduce/libs/state-pusher/0.1/fetch"}));
StepConfig enableDebugStepConfig = new StepConfig("enableDebug", debugJarConfig);
RunJobFlowRequest request = new RunJobFlowRequest("MyJobFollow", instances);
/** requireについて他の設定(stepとか)
 * MapReduceジョブの構成をstepConfigに設定する
 *  ......
 */
request.setSteps(Arrays.asList(new StepConfig[] {enableDebugStepConfig, stepConfig }));
  
PropertiesCredentials credentials = new PropertiesCredentials(getClassLoader().getResourceAsStream("AwsCredentials.properties"));
AmazonElasticMapReduce emr = new AmazonElasticMapReduceClient(credentials);
emr.runJobFlow(request);//EMRジョブを起動する

没有评论:

发表评论