溫馨提示×

溫馨提示×

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

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

Spark調優(yōu)之硬件要求有哪些

發(fā)布時間:2021-12-16 11:30:13 來源:億速云 閱讀:231 作者:小新 欄目:大數(shù)據(jù)

這篇文章將為大家詳細講解有關Spark調優(yōu)之硬件要求有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一,存儲系統(tǒng)

因為因為大多數(shù)Spark工作可能需要從外部存儲系統(tǒng)(例如Hadoop文件系統(tǒng)或HBase)中讀取輸入數(shù)據(jù),所以將其盡可能靠近該系統(tǒng)很重要。所以,有如下建議:

1,如果可能,在與HDFS相同的節(jié)點上運行Spark。最簡單的方式是將spark 的Standalone集群和hadoop集群安裝在相同的節(jié)點,同時配置好Spark和hadoop的內存使用,避免相互干擾(對于hadoop,每個task的內存配置參數(shù)是mapred.child.java.opts; mapreduce.tasktracker.map.tasks.maximum 和mapreduce.tasktracker.reduce.tasks.maximum 決定了task的數(shù)目)。也可以將hadoop和spark運行在共同的集群管理器上,如mesos和 yarn。

2,如果不可能,請在與HDFS相同的局域網(wǎng)中的不同節(jié)點上運行Spark。

3,對于低延遲數(shù)據(jù)存儲(如HBase),可能優(yōu)先在與存儲系統(tǒng)不同的節(jié)點上運行計算任務以避免干擾。

二,本地磁盤

雖然Spark可以在內存中執(zhí)行大量的計算,但它仍然使用本地磁盤來存儲不適合RAM的數(shù)據(jù),以及在stage之間,也即shuffle的中間結果。我們建議每個節(jié)點至少有4-8塊磁盤,并且不需要RAID,僅僅是獨立的磁盤掛在節(jié)點。在Linux中,使用noatime選項安裝磁盤,以減少不必要的寫入。在spark任務中,spark.local.dir配置可以十多個磁盤目錄,以逗號分開。如果你運行在hdfs上,與hdfs保持一致就很好。

使用noatime選項安裝磁盤,要求當掛載文件系統(tǒng)時,可以指定標準Linux安裝選項(noatime),這將禁用該文件系統(tǒng)上的atime更新。磁盤掛在命令:

mount -t gfs BlockDevice MountPoint -o noatime

BlockDevice 指定GFS文件系統(tǒng)駐留的塊設備。

MountPoint 指定GFS文件系統(tǒng)應安裝的目錄。

例子:

mount -t gfs /dev/vg01/lvol0 /gfs1 -o noatime

三,內存

單臺機器內存從8GB到數(shù)百GB,spark都能運行良好。在所有情況下,我們建議僅為Spark分配最多75%的內存;留下其余的操作系統(tǒng)和緩沖區(qū)緩存。

需要多少內存取決于你的應用程序。要確定你的應用的特定數(shù)據(jù)集需要多大內存,請加載部分數(shù)據(jù)集到內存,然后在Spark UI的Storage界面去看它的內存占用量。

請注意,內存使用受到存儲級別和序列化格式的極大影響 - 有關如何減少內存使用的技巧,請參閱另一篇調優(yōu)的文章。

最后,請注意,對于超過200GB的內存的機器JAVA VM運行狀態(tài)并不一直表現(xiàn)良好。如果你買的機器內存超過了200GB,那么可以在一個節(jié)點上運行多個worker。Spark Standalone模式下,你可以在配置文件 conf/spark-env.sh中設置SPARK_WORKER_INSTANCES的值來設置單節(jié)點worker的數(shù)目。也可以設置SPARK_WORKER_CORES參數(shù)來設置每個Worker的cpu數(shù)目。

四,網(wǎng)絡

根據(jù)以往的經(jīng)驗,假如數(shù)據(jù)是在內存中,那么spark的應用的瓶頸往往就在網(wǎng)絡。用10 Gigabit或者更高的網(wǎng)絡,是使spark應用跑的最更快的最佳方式。特別是針對“distributed reduce”應用,如group-bys,reduce-bys和sql joins,就表現(xiàn)的更加明顯。在任何給定的應用程序中,你可以通過spark ui查看spark shuffle過程夸網(wǎng)絡傳輸了多少數(shù)據(jù)。

五,cpu

即使每臺機器幾十個cpu,spark也可以很好的擴展,因為他在線程之間執(zhí)行最小的共享cpu。你應該每臺機器至少配置8-16個內核。根據(jù)cpu負載,可能需要更多的cpu:一旦數(shù)據(jù)在內存中,大多數(shù)應用程序的瓶頸就在CPU和內存。

關于“Spark調優(yōu)之硬件要求有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

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

AI