Spark Job 在 EC2 上未获取任何内核



我将flintrock 0.9.0spark 2.2.0一起使用,以在EC2上启动集群。 代码是用pyspark编写的 我已经这样做了一段时间,并运行了几个成功的作业。在过去的 2 天里,我遇到了一个问题,当我在某些实例上启动集群时,我没有得到任何内核。我在c1.medium上观察到了这种行为,现在r3.xlarge代码以获取spark,这是spark context objects

conf = SparkConf().setAppName('the_final_join')
                  .setMaster(master)
                  .set('spark.executor.memory','29G')
                  .set('spark.driver.memory','29G')
sc = SparkContext(conf=conf) 
spark = SparkSession.builder.config(conf=conf).getOrCreate()

c1.medium .set('spark.executor.cores', '2')使用,似乎有效。但是现在我尝试在更大的 r3.xlarge 实例集群上运行我的代码,无论我做什么,我的 Job 都不会获得任何代码。所有工人都还活着,我看到他们每个人都应该有 4 个核心。在过去的 2 个月里有什么变化还是我在启动过程中遗漏了什么?我在us-east-1c启动实例,我不知道这是否与此有关。

您的部分问题可能是您尝试为驱动程序/执行程序分配的内存多于您有权访问的内存。

yarn.nodemanager.resource.memory-mb 控制每个节点上容器使用的最大内存总和(引用(

您可以在此处查找各种实例的此值。 r3.xlarge 可以访问 23,424M,但您试图为您的驱动程序/执行者提供 29G。 最终,Yarn 没有启动 Spark,因为它无法访问足够的内存来运行您的作业。

最新更新