91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spark優化(一):合理分配資源

發布時間:2020-06-26 14:14:37 來源:網絡 閱讀:7189 作者:jackeychen100 欄目:大數據

分配更多資源:性能調優的王道,就是增加和分配更多的資源,性能和速度上的提升,是顯而易見的;基本上,在一定范圍之內,增加資源與性能的提升,是成正比的;寫完了一個復雜的spark作業之后,進行性能調優的時候,首先第一步,我覺得,就是要來調節最優的資源配置;在這個基礎之上,如果說你的spark作業,能夠分配的資源達到了你的能力范圍的頂端之后,無法再分配更多的資源了,公司資源有限;那么才是考慮去做后面的這些性能調優的點。

問題:
1、分配哪些資源?
2、在哪里分配這些資源?
3、為什么多分配了這些資源以后,性能會得到提升?

答案:
1、分配哪些資源?executor、cpu per executor、memory per executor、driver memory
2、在哪里分配這些資源?在我們在生產環境中,提交spark作業時,用的spark-submit shell腳本,里面調整對應的參數

/usr/local/spark/bin/spark-submit \
--class cn.spark.sparktest.core.WordCountCluster \
--num-executors 3 \  配置executor的數量
--driver-memory 100m \  配置driver的內存(影響不大)
--executor-memory 100m \  配置每個executor的內存大小
--executor-cores 3 \  配置每個executor的cpu core數量
/usr/local/SparkTest-0.0.1-SNAPSHOT-jar-with-dependencies.jar \

3、調節到多大,算是最大呢?

第一種,Spark Standalone,公司集群上,搭建了一套Spark集群,你心里應該清楚每臺機器還能夠給你使用的,大概有多少內存,多少cpu core;那么,設置的時候,就根據這個實際的情況,去調節每個spark作業的資源分配。比如說你的每臺機器能夠給你使用8G內存,4個cpu core;10臺機器;executor數可設置20;平均每個executor分配4G內存,2個cpu

第二種,Yarn。資源隊列。資源調度。應該去查看,你的spark作業,要提交到的資源隊列,大概有多少資源?500G內存,100個cpu core;executor數50;平均每個executor分配10G內存,2個cpu

一個原則,你能使用的資源有多大,就盡量去調節到最大的大小(executor的數量,幾十個到上百個不等;executor內存;executor cpu core)

4、為什么調節了資源以后,性能可以提升?

    4.1、增加executor:
    如果executor數量比較少,那么,能夠并行執行的task數量就比較少,就意味著,我們的Application的并行執行的   能力就很弱。
    比如有3個executor,每個executor有2個cpu core,那么同時能夠并行執行的task,就是6個。6個執行完以后,再換下一批6個task。
    增加了executor數量以后,那么,就意味著,能夠并行執行的task數量,也就變多了。比如原先是6個,現在可能可以并行執行10個,甚至20個,100個。那么并行能力就比之前提升了數倍,數十倍。
    相應的,性能(執行的速度),也能提升數倍~數十倍。

    4.2、增加每個executor的cpu core,也是增加了執行的并行能力。原本20個executor,每個才2個cpu core。能夠并行執行的task數量,就是40個task。
    現在每個executor的cpu core,增加到了5個。能夠并行執行的task數量,就是100個task。
    執行的速度,提升了2.5倍。

    4.3、增加每個executor的內存量。增加了內存量以后,對性能的提升,有兩點:
    如果需要對RDD進行cache,那么更多的內存,就可以緩存更多的數據,將更少的數據寫入磁盤,甚至不寫入磁盤。減少了磁盤IO。
    對于shuffle操作,reduce端,會需要內存來存放拉取的數據并進行聚合。如果內存不夠,也會寫入磁盤。如果給executor分配更多內存以后,就有更少的數據,需要寫入磁盤,甚至不需要寫入磁盤。減少了磁盤IO,提升了性能。
    對于task的執行,可能會創建很多對象。如果內存比較小,可能會頻繁導致JVM堆內存滿了,然后頻繁GC,垃圾回收,minor GC和full GC。(速度很慢)。內存加大以后,帶來更少的GC,垃圾回收,避免了速度變慢,速度變快了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遂昌县| 桓仁| 青河县| 县级市| 乌拉特前旗| 井冈山市| 永春县| 四子王旗| 隆德县| 博湖县| 喜德县| 镇江市| 东乡| 高要市| 辽源市| 浠水县| 壶关县| 绥宁县| 格尔木市| 枣庄市| 万载县| 平利县| 陵川县| 乌拉特后旗| 贵德县| 弥渡县| 庆阳市| 拉孜县| 德钦县| 临湘市| 保德县| 银川市| 长沙市| 甘南县| 天水市| 文山县| 沛县| 乌恰县| 明水县| 聂拉木县| 阜宁县|