Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 Amazon EMR群集停留在启动状态_Java_Scala_Amazon Web Services_Amazon Emr - Fatal编程技术网

Java Amazon EMR群集停留在启动状态

Java Amazon EMR群集停留在启动状态,java,scala,amazon-web-services,amazon-emr,Java,Scala,Amazon Web Services,Amazon Emr,我正在AWS EMR上创建集群(带有控制台和SDK)。但这些集群始终保持“启动”状态,永远不会启动。为什么会发生这种情况?我该如何解决?谢谢 引导操作日志: 信息i-062fab1a95f485684:新实例已启动 错误i-062fab1a95f485684:启动失败。引导操作1失败,退出代码为非零 我的代码: val emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCred

我正在AWS EMR上创建集群(带有控制台和SDK)。但这些集群始终保持“启动”状态,永远不会启动。为什么会发生这种情况?我该如何解决?谢谢

引导操作日志: 信息i-062fab1a95f485684:新实例已启动 错误i-062fab1a95f485684:启动失败。引导操作1失败,退出代码为非零

我的代码:

val emr = AmazonElasticMapReduceClientBuilder.standard()
  .withCredentials(new AWSStaticCredentialsProvider(awsCred))
  .withRegion(Regions.EU_WEST_1)
  .build()

val stepFactory = new StepFactory();
val enabledebugging = new StepConfig()
  .withName("Enable debugging")
  .withActionOnFailure("TERMINATE_JOB_FLOW")
  .withHadoopJarStep(stepFactory.newEnableDebuggingStep())

val spark = new Application().withName("Spark")
val hive = new Application().withName("Hive")
val ganglia = new Application().withName("Ganglia")
val zeppelin = new Application().withName("Zeppelin")

val request = new RunJobFlowRequest()
  .withName("Spark Cluster")
  .withReleaseLabel("emr-5.20.0")
  .withSteps(enabledebugging)
  .withApplications(spark)
  .withLogUri("s3://my-logs")
  .withServiceRole("EMR_DefaultRole")
  .withJobFlowRole("EMR_EC2_DefaultRole")
  .withInstances(new JobFlowInstancesConfig()
    .withEc2SubnetId("subnet-xxxxx")
    .withEc2KeyName("ec2test")
    .withInstanceCount(3)
    .withKeepJobFlowAliveWhenNoSteps(true)
    .withMasterInstanceType("m5.xlarge")
    .withSlaveInstanceType("m5.xlarge")
  );
val result = emr.runJobFlow(request);
System.out.println("The cluster ID is " + result.toString());

发布用于创建EMR clusterI的配置,我添加了用于创建clusterI的scala代码。您是否尝试过通过删除位进行调试,直到它正常工作?例如,如果删除
RunJobFlowRequest
,它是否有效?请先运行“emr=AmazoneLastICMapreduceClient Builder”部分,然后启动并运行emr群集。确保日志保存到S3()。如果没有它,调试引导问题就太难了。确保已连接足够的磁盘空间。如果磁盘空间不足以安装软件包,EMR将关闭。一旦您开始在S3中获取日志,请查看主节点引导日志以确保所有步骤都成功。在引导过程完成之前,保持配置简单,使用IGW将所有节点放在公共子网中,给出中等EC2实例,因为小实例可能无法承受EMR引导负载(内存不足等)。发布用于创建EMR clusterI的配置。我添加了用于创建clusterI的scala代码。您是否尝试过通过删除位进行调试,直到成功?例如,如果删除
RunJobFlowRequest
,它是否有效?请先运行“emr=AmazoneLastICMapreduceClient Builder”部分,然后启动并运行emr群集。确保日志保存到S3()。如果没有它,调试引导问题就太难了。确保已连接足够的磁盘空间。如果磁盘空间不足以安装软件包,EMR将关闭。一旦您开始在S3中获取日志,请查看主节点引导日志以确保所有步骤都成功。在引导过程完成之前,保持配置简单,使用IGW将所有节点放在公共子网中,给出中等EC2实例,因为小实例可能无法承受EMR引导负载(内存不足等)。