gpt4 book ai didi

hadoop - 小于 hadoop block 大小 : spark + machine learning 的文件怎么办

转载 作者:可可西里 更新时间:2023-11-01 16:03:24 25 4
gpt4 key购买 nike

我的 hadoop block 大小是 128 MB,我的文件是 30 MB。我的运行 spark 的集群是一个 4 节点集群,共有 64 个内核。

现在我的任务是运行随机森林或梯度提升算法,在此基础上使用参数网格和 3 折交叉验证。

几行代码:

import org.apache.spark.ml.tuning.{ParamGridBuilder, TrainValidationSplit, CrossValidator}
import org.apache.spark.ml.regression.GBTRegressor

val gbt_model = new GBTRegressor().setLabelCol(target_col_name).setFeaturesCol("features").setMaxIter(2).setMaxDepth(2).setMaxBins(1700)
var stages: Array[org.apache.spark.ml.PipelineStage] = index_transformers :+ assembler :+ gbt_model
val paramGrid = new ParamGridBuilder().addGrid(gbt_model.maxIter, Array(100, 200)).addGrid(gbt_model.maxDepth, Array(2, 5, 10)).build()

val cv = new CrossValidator().setEstimator(pipeline).setEvaluator(new RegressionEvaluator).setEstimatorParamMaps(paramGrid).setNumFolds(5)
val cvModel = cv.fit(df_train)

我的文件有左右

输入:10个离散/字符串/字符特征+ 2个整数特征

输出一个整数响应/输出变量

这需要 4 个多小时才能在我的集群上运行。我观察到我的代码只在 1 个节点上运行,只有 3 个容器。

问题:

  1. 我在这里可以做什么来确保我的代码在所有四个节点上运行或使用尽可能多的核心进行快速计算。
  2. 在对数据进行分区(scala 中的 DataFrame 和 Hadoop 集群上的 csv 文件)方面,我可以做些什么来提高速度和计算能力

问候,

最佳答案

当您提交作业时,您可以通过参数--num-executors 传递您想要的执行器数量。您还可以通过 --executor-cores--executor-memory 指定每个执行程序将使用的内核数量和内存量。

关于hadoop - 小于 hadoop block 大小 : spark + machine learning 的文件怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37592420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com