在Spark 0.9.0上运行作业会引发错误

pra*_*see 13 java scala hdfs apache-spark

我安装了Apache Spark 0.9.0群集,我正在尝试部署从HDFS读取文件的代码.这段代码抛出警告,最终失败了.这是代码

/**
 * running the code would fail 
 * with a warning 
 * Initial job has not accepted any resources; check your cluster UI to ensure that 
 * workers are registered and have sufficient memory
 */

object Main extends App {
    val sconf = new SparkConf()
    .setMaster("spark://labscs1:7077")
    .setAppName("spark scala")
    val sctx = new SparkContext(sconf)
    sctx.parallelize(1 to 100).count
}
Run Code Online (Sandbox Code Playgroud)

以下是警告消息

初始工作没有接受任何资源; 检查群集UI以确保工作人员已注册并具有足够的内存

如何摆脱这个或我错过了一些配置.

sam*_*est 5

当你通过设置spark.cores.maxspark.executor.memoryresp' 请求的内核数量或RAM(每个节点)超过可用内容时,就可以得到这个结果.因此,即使没有其他人正在使用群集,并且您指定要使用,例如每个节点100GB RAM,但您的节点只能支持90GB,那么您将收到此错误消息.

公平地说,在这种情况下,信息是模糊的,如果它说超出最大值,那将更有帮助.


Wil*_*ire 2

看起来 Spark master 无法为该任务分配任何工作人员。要么工人还没有开始工作,要么他们都在忙。

SPARK_MASTER_WEBUI_PORT检查主节点上的 Spark UI(端口由in指定spark-env.sh,默认为 8080)。它应该看起来像这样:SparkUI示例

为了使集群正常运行:

  • 必须有一些状态为“Alive”的工人
  • 必须有一些核心可用(例如,如果所有核心都忙于冻结任务,则集群将不会接受新任务)
  • 必须有足够的可用内存

  • 尝试在您尝试运行代码的同一台计算机上运行“MASTER=spark://labscs1:7077 spark-shell”。Spark 控制台中的相同代码:“sc.parallelize(1 to 100).count”。有效吗? (3认同)