我正在运行一个工作,我将wikidaa和维基百科的综合网页浏览结合起来,而我正在使用一个包含两到三个节点的小型Google集群。我的问题是,大多数情况下,一个节点完全空闲,尽管我试图通过在启动作业之前在多个分区中对数据进行分区来增加并行性。另外,我根据Spark的并行性参数重新分区数据,但无论我尝试什么,总是只使用一个节点。
我最后的努力是以下脚本没有做太多。它提高了工作节点的性能,但空闲节点仍处于空闲状态。
我用来运行作业的脚本如下:
gcloud dataproc clusters create mycluster \
--zone europe-west1-b \
--master-machine-type n1-standard-8 \
--master-boot-disk-size 500 \
--num-workers 2 \
--worker-machine-type n1-standard-16 \
--worker-boot-disk-size 500 \
--scopes 'https://www.googleapis.com/auth/cloud-platform' \
--project myproject
gcloud dataproc jobs submit spark --cluster mycluster \
--class Main \
--properties \
spark.driver.memory=38g,\
spark.driver.maxResultSize=1g,\
spark.executor.memory=45g,\
spark.driver.cores=4,\
spark.executor.cores=16,\
spark.dynamicAllocation.enabled=true,\
spark.shuffle.service.enabled=true,\
spark.dynamicAllocation.minExecutors=32,\
spark.executor.heartbeatInterval=36000s,\
spark.network.timeout=86000s,\
spark.default.parallelism=1000,\
spark.driver.extraJavaOptions=-XX:+UseConcMarkSweepGC,\
spark.executor.extraJavaOptions=-XX:+UseConcMarkSweepGC \
--files /path/to/file/properties.properties \
--jars myjar.jar
customArg1=value1
flagA=false
flagB=true
答案 0 :(得分:2)
答案 1 :(得分:0)
除了Patrick Clay的回答,首先,这里有一些引用:
“每个容器集群都有一个主端点,由Container Engine管理。主服务器提供统一的集群视图,通过其公共可访问的端点,是与集群交互的门户。” p>
我遇到了同样的问题(gcloud container cluster ..
除外)并且每个节点都有一个调度和运行的pod,即使在主节点影响可见的小型集群上,我也必须设置CPU限制运行
这是我的pod.json(有些事情已跳过):
{
"kind": "Pod",
"apiVersion": "v1",
"spec": {
"containers": [
{
"resources": {
"limits": {
"cpu": "700m"
}
}
}
],
}
}