【问题标题】:Spark loses workersSpark失去了工人
【发布时间】:2016-01-21 23:46:15
【问题描述】:

我已经设置了一个有 2 个工作人员的 hadoop 集群。 Spark 已安装并与纱线一起使用。我开始了

$ pyspark 或者 $火花R

并且 api 正常启动并且可以实际执行计算,但它会在大约 1 分钟后失去它的工作人员。我完全按照这个(https://cloud.google.com/solutions/monte-carlo-methods-with-hadoop-spark)遵循了说明。启动 sparkR 或 pyspark 一分钟后,我收到此错误

16/01/20 16:56:35 ERROR org.apache.spark.scheduler.cluster.YarnScheduler: Lost executor 2 on hadoopcluster-w-1
.c.hadoop-1196.internal: remote Rpc client disassociated
16/01/20 16:56:38 ERROR org.apache.spark.scheduler.cluster.YarnScheduler: Lost executor 1 on hadoopcluster-w-0.c
.hadoop-1196.internal: remote Rpc client disassociated

我已经到处寻找解决方案。我看到很多人说增加 spark.yarn.executorMemory 但这不起作用。我重新创建了一个全新的项目来复制并遇到同样的问题。了解 Spark 的人是否可以按照我上面发布的教程尝试创建集群并运行脚本并提出修复建议?谢谢!

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    感谢您的回复。事实证明,这只是“由于动态分配的已知 Spark 问题造成的无害日志垃圾邮件”。见:

    "https://issues.apache.org/jira/browse/SPARK-4134" 和 "Google Dataproc - disconnect with executors often"

    【讨论】:

      【解决方案2】:

      如果运行这个

      (sc.parallelize(1 to 4, 2)
          .map(i => playSession(100000, 100, 250000))
          .map(i => if (i == 0) 1 else 0)
          .reduce(_+_)/4.)
      

      不会给你任何错误,这意味着你的问题是由内存引起的(你将无法通过更改集群的设置来修复它)

      【讨论】:

      • 谢谢拉杜。我运行它并没有收到任何错误。尽管我确实收到了已弃用的警告。 scala> (sc.parallelize(1 to 10000, 500) | .map(i => playSession(100000, 100, 250000)) | .map(i => if (i == 0) 1 else 0) | .reduce (+)/10000.) 警告:有 1 个弃用警告;使用 -deprecation 重新运行以获取详细信息 res1: Double = 0.9994
      • 可能是不推荐设置分区数,因为这是从输入文件的拆分数得出的。
      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2018-02-13
      • 2015-10-15
      相关资源
      最近更新 更多