【发布时间】:2021-03-14 15:50:59
【问题描述】:
我是分布式 ML 的新手,目前正在做我的个人项目
我在 Cloud Dataproc 上使用 PySpark 训练我的模型并像下面的代码一样构建管道
spark = SparkSession.builder.appName('sparkify-train').getOrCreate()
df = spark.read.parquet(path)
gbt = GBTClassifier()
paramGrid = ParamGridBuilder() \
.addGrid(gbt.maxDepth, [4,8,12]) \
.addGrid(gbt.maxIter, [5,10,15]) \
.addGrid(gbt.featuresCol, ["features_1", "features_2"]) \
.build()
tvs = TrainValidationSplit(estimator=gbt,
estimatorParamMaps=paramGrid,
evaluator=BinaryClassificationEvaluator(),
trainRatio=0.75)
tvs.fit(df)
注意:我没有在上面的代码中显示特征提取和其他内容
但在 CPU 利用率图表上,主节点是唯一的繁忙节点,而不是三个工作节点
我使用 Cloud Shell 和以下命令创建 Dataproc 集群。此命令是从 Dataproc 创建集群 UI 生成的。
gcloud beta dataproc clusters create sparkify --enable-component-gateway --region asia-southeast2 --subnet default --zone asia-southeast2-c
--master-machine-type custom-1-3840 --master-boot-disk-type pd-ssd --master-boot-disk-size 50 --num-workers 3 --worker-machine-type custom-1-3840 --worker-boot-disk-type pd-ss
d --worker-boot-disk-size 30 --image-version 2.0-ubuntu18 --optional-components JUPYTER,ZEPPELIN --project wskt-trek
我只是想知道我的代码有什么问题吗?或者有什么我想念的设置吗?我认为所有工作人员的 CPU 都应该具有高利用率。谢谢!
【问题讨论】:
-
你是通过dataproc GUI手动创建集群还是自动创建的,你可以在集群中点击dataproc并共享属性
-
嗨@NassereddineBelghith,我已经更新了我的问题。如果你能帮上忙,这对我来说意义重大。谢谢!
标签: apache-spark google-cloud-platform pyspark google-cloud-dataproc