日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了運行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[*]”);
    參考文獻:https://spark.apache.org/docs/latest/configuration.html

    在Spark中,有很多東西可能會影響CPU和內存的使用,例如,執行器和您想要分配的每個.Executor.Memory。

這篇關于運行Spark作業時CPU使用率較低的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:CPU Spark 作業 使用率 較低 運行
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定