一直出现Issue communicating with driver in heartbeater,RpcTimeout的错误,尝试60次停止


0

报错信息如下:
图片alt
图片alt

我修改过配置信息,加大堆内存,核数,甚至将数据压缩到4w都不行。
spark-shell测试有过使用中filter和where也就没有反应了的,卡在这里。
卡主的代码部分:

  def getSampleDataV2(dataSource: DataFrame,
                      label_col: String,
                      pos_label: String,
                      neg_label: String): DataFrame = {
    val posDF = dataSource.where(s"$label_col='$pos_label'")
    val posNum = posDF.count()
    println("pos label data size : " + posNum)

    val negDF = dataSource.where(s"$label_col='$neg_label'")
    val negNum = negDF.count()
    println("neg label data size : " + negNum)
    require(posNum > 0 & negNum > 0, "Don't exist pos label or neg label!")

    if (posNum < negNum) {
      val frac = posNum / negNum.toDouble
      println("fraction pos_num / neg_num : " + siteFormatFour(frac))
      posDF.union(negDF.sample(withReplacement = false, fraction = frac))
    } else {
      val frac = negNum / posNum.toDouble
      println("fraction neg_num / pos_num : " + siteFormatFour(frac))
      negDF.union(posDF.sample(withReplacement = false, fraction = frac))
    }
  }
  def siteFormatFour(percent: Double): String = {
    new java.text.DecimalFormat("0.0000").format(percent)
  }

1 答案

0

增加 Driver 内存, 适当增加 Executor 内存, 但是不要加 cores

查看 spark-ui 页面,看看当前任务的进度,以及在做什么操作,针对性的修改代码或者配置


我来回答

写文章

提问题