Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;无效选项“;向EMR引导操作传递参数时出错_Java_Ruby_Amazon Web Services_Elastic Map Reduce - Fatal编程技术网

Java &引用;无效选项“;向EMR引导操作传递参数时出错

Java &引用;无效选项“;向EMR引导操作传递参数时出错,java,ruby,amazon-web-services,elastic-map-reduce,Java,Ruby,Amazon Web Services,Elastic Map Reduce,我正在使用JavaSDK以编程方式配置一个EMR集群,并试图将参数传递给setupImpala脚本。我的代码如下所示: ... List<BootstrapActionConfig> bootstrapActions = new ArrayList<BootstrapActionConfig>(); // --base-path, s3://elasticmapreduce, --impala-version, 1.2.1 BootstrapAc

我正在使用JavaSDK以编程方式配置一个EMR集群,并试图将参数传递给setupImpala脚本。我的代码如下所示:

...
    List<BootstrapActionConfig> bootstrapActions = new ArrayList<BootstrapActionConfig>();

    // --base-path, s3://elasticmapreduce, --impala-version, 1.2.1
    BootstrapActionConfig bsInstallImpala = new BootstrapActionConfig();
    bsInstallImpala.setName( "Install Impala" );
    ScriptBootstrapActionConfig scriptActionInstallImpala = new ScriptBootstrapActionConfig();
    scriptActionInstallImpala.setPath("s3://elasticmapreduce/libs/impala/setup-impala");

    List<String> impalaArgs = new ArrayList<String>();
    impalaArgs.add( "--base-path, s3://elasticmapreduce" );
    impalaArgs.add( "--impala-version, 1.2.1" );
    scriptActionInstallImpala.setArgs(impalaArgs);
    bsInstallImpala.setScriptBootstrapAction(scriptActionInstallImpala);
    bootstrapActions.add( bsInstallImpala );

... 
    RunJobFlowRequest request = new RunJobFlowRequest()
       .withName("OneButton Test")
       .withSteps(enabledebugging, installHive, installPig)
       .withLogUri("s3://somelogs/")
       .withAmiVersion("3.0.4")
       .withBootstrapActions(bootstrapActions)
       .withInstances(new JobFlowInstancesConfig()
           .withInstanceGroups(instanceGroups)
           .withEc2KeyName("redacted")
           .withHadoopVersion("2.2.0")
           .withKeepJobFlowAliveWhenNoSteps(true)
           .withTerminationProtected(true) );
这看起来像是引导操作的参数语法有问题,但我尝试了每一种似乎合理的排列,我总是得到这个错误(或近似值)。但是对于上面列出的配置,当我在web控制台中查看集群详细信息时,参数看起来与我使用web控制台配置的集群相同


有什么想法吗?

事实证明,正确的格式是在参数的字符串中使用=符号。像这样:

impalaArgs.add( "--base-path=s3://elasticmapreduce" );
impalaArgs.add( "--impala-version=1.2.1" );
这是相当违反直觉的,因为您在web控制台中看到的参数字符串现在看起来也不一样了,而您希望有一种——可能还有一种——“正确的方法”。但是显然,使用web控制台创建集群和使用API创建集群之间有一些细微的区别

impalaArgs.add( "--base-path=s3://elasticmapreduce" );
impalaArgs.add( "--impala-version=1.2.1" );