首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCE中未使用工作节点

GCE中未使用工作节点
EN

Stack Overflow用户
提问于 2018-04-03 02:49:52
回答 1查看 99关注 0票数 1

在google-cloud-dataproc上运行我的spark作业时,我注意到只有主节点被利用,所有工作节点的CPU利用率几乎为0% (0.8 %左右)。我同时使用了GUI和控制台来运行代码。您是否知道可能导致这种情况的任何特定原因,以及如何充分利用工作节点?

我以以下方式提交作业:

gcloud dataproc作业提交spark --属性spark.executor.cores=10 --集群集群--663c --class ComputeMST --jar gs://kslc/ComputeMST.jar --文件gs://kslc/SIFT_full.txt -- SIFT_full.txt gs://kslc/SIFT_fu ll.txt 5.0 12

代码语言:javascript
复制
	while(true){

	level_counter++;

	if(level_counter > (number_of_levels - 1)) break;
	
	System.out.println("LEVEL = " + level_counter);
	
	JavaPairRDD<ArrayList<Integer>, epsNet> distributed_msts_logn1 = distributed_msts_logn.mapToPair(new next_level());
	
	JavaPairRDD<ArrayList<Integer>, epsNet> distributed_msts_next_level = distributed_msts_logn1.reduceByKey(new union_eps_nets());

	den = den/2;
	
	distributed_msts_logn = distributed_msts_next_level.mapValues(new unit_step_logn(den, level_counter));		
	}

	JavaRDD<epsNet> epsNetsRDDlogn =  distributed_msts_logn.values();

	List<epsNet> epsNetslogn = epsNetsRDDlogn.collect(); 	

上面是代码,我正在试着运行。

EN

回答 1

Stack Overflow用户

发布于 2018-04-03 03:43:10

你正在你的驱动程序中做一个collect()。你想要达到什么目的?执行收集肯定会占用您的主节点资源,因为驱动程序将在此处收集结果。通常,您希望将数据摄取到spark中(在spark上下文中使用read或parallelize ),执行内存中的map-reduce (转换),然后从spark世界中提取数据(例如,向hdfs写入拼图),以执行任何与收集相关的事情。此外,通过spark UI确保您具有所需的所有执行器以及给定的内核和内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49616993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档