java - Spark v3.0.0 - 警告 DAGScheduler : broadcasting large task binary with size xx

标签 java apache-spark apache-spark-mllib apache-spark-ml

我是新来的 Spark 。我正在使用以下配置集在 Spark Standalone (v3.0.0) 中编写机器学习算法:

SparkConf conf = new SparkConf();
conf.setMaster("local[*]");
conf.set("spark.driver.memory", "8g");
conf.set("spark.driver.maxResultSize", "8g");
conf.set("spark.memory.fraction", "0.6");
conf.set("spark.memory.storageFraction", "0.5");
conf.set("spark.sql.shuffle.partitions", "5");
conf.set("spark.memory.offHeap.enabled", "false");
conf.set("spark.reducer.maxSizeInFlight", "96m");
conf.set("spark.shuffle.file.buffer", "256k");
conf.set("spark.sql.debug.maxToStringFields", "100");
这就是我创建 CrossValidator 的方式
ParamMap[] paramGrid = new ParamGridBuilder()
            .addGrid(gbt.maxBins(), new int[]{50})
            .addGrid(gbt.maxDepth(), new int[]{2, 5, 10})
            .addGrid(gbt.maxIter(), new int[]{5, 20, 40})
            .addGrid(gbt.minInfoGain(), new double[]{0.0d, .1d, .5d})
            .build();

    CrossValidator gbcv = new CrossValidator()
            .setEstimator(gbt)
            .setEstimatorParamMaps(paramGrid)
            .setEvaluator(gbevaluator)
            .setNumFolds(5)
            .setParallelism(8)
            .setSeed(session.getArguments().getTrainingRandom());
问题是当(在 paramGrid 中)maxDepth 只是 {2, 5} 和 maxIter {5, 20} 时一切正常,但是当它像上面的代码一样时,它会继续记录:WARN DAGScheduler: broadcasting large task binary with size xx ,
xx 从 1000 KiB 到 2.9 MiB,通常会导致超时异常
我应该更改哪些 Spark 参数以避免这种情况?

最佳答案

对于超时问题,请考虑更改以下配置:
spark.sql.autoBroadcastJoinThreshold 为 -1。
这将取消广播大小的限制,即 10MB。

关于java - Spark v3.0.0 - 警告 DAGScheduler : broadcasting large task binary with size xx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63703994/

相关文章:

java - 使用 Android 通过 HttpRequest 发送简单的 POST

hadoop - 寻找一种方法来连续处理写入 hdfs 的文件

apache-spark-mllib - 如何在没有 SparkContext 的情况下加载 spark.mllib 模型进行预测?

scala - Spark DataFrame 不尊重模式并将所有内容视为字符串

java - 从另一个 Activity 返回时数组列表保持为空

java - 我的 utf8 应用程序在 eclipse 中工作正常,但在终端中却不行

java:从文件读取时循环产生不正确的输出?

apache-spark - 如何列出 Spark shell 中定义的 RDD?

scala - 使用 Intel AVX 和 Spark

apache-spark - 如何从文本文件创建 mllib.linalg.Matrix