运行Spark作业时CPU使用率较低

编程入门 行业动态 更新时间:2024-10-25 14:25:40
本文介绍了运行Spark作业时CPU使用率较低的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在运行Spark作业。我有4个内核和设置为5G的工作内存。应用程序主机位于同一网络中的另一台计算机上,不承载任何工作进程。这是我的代码:

private void myClass() { // configuration of the spark context SparkConf conf = new SparkConf().setAppName("myWork").setMaster("spark://myHostIp:7077").set("spark.driver.allowMultipleContexts", "true"); // creation of the spark context in wich we will run the algorithm JavaSparkContext sc = new JavaSparkContext(conf); // algorithm for(int i = 0; i<200; i++) { System.out.println("==============================================================="); System.out.println("iteration : " + i); System.out.println("==============================================================="); ArrayList<Boolean> list = new ArrayList<Boolean>(); for(int j = 0; j < 1900; j++){ list.add(true); } JavaRDD<Ant> ratings = sc.parallelize(list, 100) .map(bool -> new myObj()) .map(obj -> this.setupObj(obj)) .map(obj -> this.moveObj(obj)) .cache(); int[] stuff = ratings .map(obj -> obj.getStuff()) .reduce((obj1,obj2)->this.mergeStuff(obj1,obj2)); this.setStuff(tour); ArrayList<TabObj> tabObj = ratings .map(obj -> this.objToTabObjAsTab(obj)) .reduce((obj1,obj2)->this.mergeTabObj(obj1,obj2)); ratings.unpersist(false); this.setTabObj(tabObj); } sc.close(); }

当我启动它时,我可以在Spark UI上看到进度,但它真的很慢(我必须将Parrallize设置得相当高,否则我会出现超时问题)。我认为这是一个CPU瓶颈,但实际上JVM的CPU消耗非常低(大多数时候是0%,有时略高于5%...)。

根据监视器显示,JVM使用了大约3G的内存,只缓存了19M。

主主机有4个核心,内存更少(4G)。那台机器显示100%的CPU消耗(一个完整的核心),我不明白为什么它那么高……它只需将分区发送给另一台计算机上的Worker,对吗?

为什么工作进程的CPU消耗低,主进程的CPU消耗高?

推荐答案
  • 确保您已在群集中按Yarn或Mesos提交Spark作业,否则它可能只在您的主节点上运行。

  • 因为您的代码非常简单,所以完成计算应该非常快,但我建议使用wordcount示例,尝试读取几GB的输入源,以测试CPU消耗情况。

  • 请使用"local[*]"。*表示使用您的所有核心进行计算

    SparkConf SparkConf=new SparkConf().Set("Spark.driver.host","localhost").setAppName("unit-testing").setMaster("local[*]"); 参考文献:spark.apache/docs/latest/configuration.html

  • 在Spark中,有很多东西可能会影响CPU和内存的使用,例如,执行器和您想要分配的每个.Executor.Memory。

  • 更多推荐

    运行Spark作业时CPU使用率较低

    本文发布于:2023-11-24 03:20:21,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1623786.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:作业   使用率   较低   Spark   CPU

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!