如何配置單核執行人JNI庫運行嗎

學習如何配置單核執行人磚上運行JNI庫。

寫的亞當Pavlacka

去年發表在:2022年3月4日

當您創建一個集群,人均磚發射一個Apache火花executor實例的節點,和執行程序使用的所有核心節點。在某些情況下,例如,如果你想運行非線程安全的JNI庫,您可能需要一個執行者,隻有一個核心或任務槽,和不會嚐試運行並發任務。在這種情況下,多個executor實例運行在一個工作節點,每個執行器隻有一個核心。

如果你運行多個執行者,你增加JVM開銷和降低總體可用內存進行處理。

開始單核執行人工人節點,配置的兩個屬性火花配置:

  • spark.executor.cores
  • spark.executor.memory

房地產spark.executor.cores指定每個執行者的核數。將此屬性設置為1

房地產spark.executor.memory指定數量的內存分配到每一個執行者。這對執行人必須設置足夠高的正常功能,但足夠低,允許所有核心。

刪除

請注意

如果你設置一個總內存值(每個執行者x數量的內存總核)大於可用內存的工作節點,一些核心仍將未使用的。

AWS

例如,一個i3.xlarge節點,30.5 GB的內存,顯示可用內存為24.9 GB。選擇適合的價值時,可用內存的數量乘以執行人。您可能需要設置一個值,允許一些開銷。例如,設置spark.executor.cores1spark.executor.memory6克:

i3.xlarge實例類型有4個核心,所以4執行人上創建節點,每6 GB的內存。

刪除

GCP

例如,n1-highmem-4工作者節點有26個GB的內存總量,但隻有15.3 GB的可用內存一旦集群運行。

使用一個例子火花配置價值,我們的核心價值1和5 GB的內存分配給每一個執行者。

spark.executor.cores1spark.executor.memory5g

一旦集群開始,工人每個有4個核心節點,但隻有3。有三個執行人,每個工作節點上5 GB的內存。這是一個共有15 GB的內存使用。

第四核心永遠旋轉起來,因為沒有足夠的內存分配。

你必須平衡選擇實例類型的內存要求每個執行者為了最大化的使用每一個核心工作節點。

刪除



這篇文章有用嗎?