導航:首頁 > 源碼編譯 > yarn配置優化編譯時間

yarn配置優化編譯時間

發布時間:2022-09-25 07:17:37

Ⅰ yarn.scheler.maximum-allocation-mb是每個節點都要配置嗎

這個看你的yarn怎麼設置了,容器數據與cpu核數和內存大小都有關系,比如說下面這個配置:
yarn.nodemanager.resource.cpu-vcores
16
yarn.scheler.minimum-allocation-vcores
1
yarn.nodemanager.resource.memory-mb
30000
yarn.scheler.minimum-allocation-mb
1024
每台機器為集群分配的cpu為16核,物理內存為30G左右,每個容器最小使用1核cpu和1G的物理內存,則每台機器最多可以為集群提供16個容器。(每個節點都滿足上述的cpu和內存大小)。

Ⅱ Spark on YARN怎麼配置的

Spark On Yarn配置很簡單,不需要單獨部署Spark集群,只需要開發Spark應用程序,打成jar包,然後使用spark-submit命令提交到Yarn上運行即可。示例:

./spark-submit--classcom.lxw1234.test.WordCount--masteryarn-cluster--executor-memory4G--num-executors10/home/lxw1234/spark-wordcount.jar/logs/2015-07-14//tmp/lxw1234/output/

你可以搜索一下"lxw的大數據田地",裡面有很多Spark On Yarn的技術文章。

Ⅲ Spark on YARN怎麼配置的

安裝好hadoop後,自帶yarn
然後將hadoop中的hdfs-site.xml,yarn-site.xml,core-site.xml配置文件拷貝一份到spark的conf目錄中;
運行spark程序時,在spark-submit中指定--master yarn-client就可以了
具體可以看看spark-submit的指令說明

Ⅳ Hadoop的資源管理系統 —— Yarn

  Yarn 是 Hadoop 的資源管理系統,用於取代 MapRece1 的資源調度,改善 MapRece 的實現,並且有足夠的通用性,可以支持其他的分布式計算模式

  一般情況下,應用不直接使用 Yarn 的API,而是通過一些分布式計算框架(MapRece、Spark等)來間接實現資源調度管理,使用這些框架的 Yarn 應用運行在集群計算層(Yarn)和集群存儲層(HDFS、HBase)上。




  Yarn 主要由兩部分組成:resource manager、node manager。

  資源管理器(resource manager)管理集群上資源的使用,節點管理器(node manager)運行在集群中所有節點上且能夠啟動和監控容器(container)。容器用於執行特定應用程序的進程,每個容器都有資源限制(內存、CPU)。

  在 Yarn 上運行一個應用的步驟如圖所示:




  在 MapRece1中,有兩類守護進程式控制製作業執行過程: jobtracker、tasktracker

  jobtracker 通過調度 tasktracker 上運行的任務來協調所有運行在系統上的作業,記錄每項作業任務的整體進度情況,若有任務失敗,則在另一個 tasktracker 節點上重新調度該任務。

  tasktracker 在運行任務的同時將運行進度報告發送給 job tracker。


  MapRece1 的 jobtracker 既要負責資源管理(作業的調度分配),將任務分配給不同的 tasktracker;又要負責任務進度的監控。如果集群非常繁忙,每時每刻都有大量的作業,每個作業下又有很多任務,jobtracker 需要面面俱到了解每個任務的執行情況,負擔很重。

  在 MapRece2 對 Yarn 的應用中,一般是會先讓 RM 啟動容器運行一個 Application Master 的進程,然後該進程負責創建和監控所有的 map task 和 rece task,了解每個 task 的執行進度,每個 task 都會運行在一個單獨的 container 中,這些 container 都是 Application Master 統一調度負責向 RM 申請的,這樣就把資源分配和作業運行調度監控解耦,讓 Yarn 專注於資源調度。




  FIFO 調度器將應用放置在一個隊列中,然後按照提交的順序(先入先出)運行應用。

【優點】簡單易懂,不需要任何配置。

【缺點】不適合共享集群。大的應用會佔用集群的所有資源,每個應用必須等待直到輪到自己運行,作業平均等待時間較長。


  為了避免小作業被大作業阻塞,容量調度器會創建幾個隊列,其中會有專門隊列給小作業執行,保證一提交就可以啟動。

  每個隊列都被分配了一定比例容量的資源,保證大作業不會佔用整個集群的所有資源。一般每個隊列對應一個組織,這樣就允許了多個組織共享一個 Hadoop 集群,每個組織可以分配到集群資源的一部分。隊列可以進一步按層次劃分,這樣每個組織內的不同用戶能夠共享該組織隊列所分配的資源。

  在一個隊列內,使用 FIFO 調度策略對應用進行調度,但是一個job可能使用不了整個隊列的資源。然而如果這個隊列中運行多個job,如果這個隊列的資源夠用,那麼就分配給這些job。



  官方文檔: https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/CapacityScheler.html 。

  容量調度器是 Hadoop2.7 默認的調度器,在 yarn-site.xml 中通過以下參數配置:

   "彈性隊列" :如果隊列 queue 資源不夠用了,而其他隊列可能是有空閑可用的資源,那麼容量調度器可能會將空餘的資源分配給隊列 queue 中的隊列,這種特性稱為 "彈性隊列"。可以通過 yarn.scheler.capacity.<queue-path>.maximum-capacity 參數來控制隊列最大佔用集群資源容量的比例。

  示例:

  在 root 隊列下定義兩個隊列:prod、dev。分別佔用集群 40%、60% 的容量。

  prod 沒有設置最大容量限制,所以當 dev 隊列空閑,prod 資源不足時,可能會佔用整個集群 100% 的資源。

  dev 隊列設置了最大容量顯示為 75%,也就是及時另外 25% 的資源空閑,dev 最大也只能佔用整個集群 75% 的資源。dev 隊列下還有子隊列 eng、science,容量都是 dev 容量的 50%,沒有為子隊列設置最大容量,所以每個子隊列最大都可能佔用 dev 隊列 100% 的資源,所以佔用的整個集群的絕對資源大小為 30%~75%。


  將上述示例的配置添加到 hadoop 配置文件目錄下的 capacity-scheler.xml 中,啟動 Yarn,上控制台( http://192.168.190.111:8088/cluster/scheler )可以看到配置的隊列容量限制。

  查看配置的每個隊列的容量限制是否生效。

  可以看到 prod 隊列容量限制是 40%,最大容量限制不設置則默認為 100%。

  dev 的兩個子隊列,佔用 dev 隊列的相對容量大小為 50%~100%,佔用整個集群的絕對容量大小為 30%~100%。

  默認的容量調度器配置



  公平調度器就是在隊列內,所有的作業平等地分配資源,如果隊列中只有一個作業,可以佔用 100% 的資源;此時進來一個新的作業,則會調度到每個作業佔用 50% 的資源,以此類推。

  公平調度器不僅實現了隊列內部的公平,還實現了隊列之間的公平。

  現在有兩個隊列 A、B。當 A 執行第一個作業,而 B 沒有作業時,A可以佔用整個集群的資源;當 A 作業還沒完成,B 執行一個作業,則經過一段時間之後,兩個作業各佔用集群一半的資源;當 B 啟動第二個作業時,隊列內部的兩個隊列共享隊列 B 的資源,經過一段時間,各佔用集群 1/4 的資源,A 繼續佔用一半的集群資源。最終結果就是資源在用戶之間實現了公平共享。


  官方文檔: https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-site/FairScheler.html 。

  啟用公平調度器,在 yarn-site.xml 中添加以下配置:

  創建公平調度配置文件 fair-scheler.xml,內容如下:

  公平調度器使用一個規則列表來確定應用應該放到哪個隊列,可配置的值和含義如下:


  將上述的配置配置好,啟用 Yarn,web console 上看到的調度器如下:

Ⅳ Linux裡面YARN作用是什麼

yarn是一個進行nodejs包管理的工具,可以方便管理nodejs依賴包,功能類似npm,但是包依賴管理上更方便。

Ⅵ Spark應用 | Hive On Spark性能調優

我們公司yarn node節點的可用資源配置為:單台node節點可用資源數:核數33cores、內存110G。Hive on Spark任務的基礎配置,主要配置對象包括:Executor和Driver內存,Executor配額,任務並行度。

配置參數為spark.executor.memory和spark.executor.cores。如果要最大化使用core,建議將core設置為4、5、6,且滿足core的個數盡量可以整除yarn資源核數。yarn資源可用33核,建議spark.executor.cores設置為4,最多剩下一個core,如果設置為5,6都會有3個core剩餘。 spark.executor.cores=4,由於總共有33個核,那麼最大可以申請的executor數是8。總內存處以8,也即是 110/8,可以得到每個executor約13.75GB內存。

建議 spark.executor.memoryOverhead(spark的executor堆外內存)站總內存的 15%-20%。 那麼最終 spark.executor.memoryOverhead=2.75 G 和spark.executor.memory=11 G
注意:默認情況下 spark.executor.memoryOverhead = max(executorMemory * 0.10, 384M),正常情況下不需要手動設置spark堆外內存,如果spark任務出現如下報錯,可以手動提高堆外內存大小。

注意:默認情況下 spark.executor.memoryOverhead = max(executorMemory * 0.10, 384M),正常情況下不需要手動設置spark堆外內存,如果spark任務出現如下報錯,可以手動提高堆外內存大小。

Container killed by YARN for exceeding memory limits. 16.9 GB of 16 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.

對於drvier的內存配置,主要有兩個參數:

Driver的內存通常來說不設置,或者設置1G左右應該就夠了。需要注意的是,如果需要使用collect運算元將RDD的數據全部拉取到Driver端進行處理,那麼必須確保Driver的內存足夠大,否則會出現OOM內存溢出的問題。

配置參數為spark.executor.instances。該參數用於設置Spark作業總共要用多少個Executor進程來執行。

executor的數目是由每個節點運行的executor數目和集群的節點數共同決定。我們離線集群27個節點,那麼離線spark任務使用的最大executor數就是 216(27*8). 最大數目可能比這個小點,因為driver也會消耗核數和內存。

該參數可以結合spark.executor.cores設置,默認單個spark任務最大不超過60cores,spark.executor.cores設置為4,則spark.executor.instances不超過15。

設置spark任務的並行度參數為spark.default.parallelism。spark任務每個stage的task個數=max(spark.default.parallelism, HDFS的block數量)。如果不設置該參數,Spark自己根據底層HDFS的block數量來設置task的數量,默認是一個HDFS block對應一個task。spark默認spark.default.parallelism配置較少,如果task個數比較少的話,前面spark資源配置沒有意義。官網建議:該參數設置為 num-executors * executor-cores的2~3倍較為合適。

當一個運行時間比較長的spark任務,如果分配給他多個Executor,可是卻沒有task分配給它,而此時有其他的yarn任務資源緊張,這就造成了很大的資源浪費和資源不合理的調度。動態資源調度就是為了解決這種場景,根據當前應用任務的負載情況,實時的增減Executor個數,從而實現動態分配資源,使整個Spark系統更加健康。

開啟spark動態資源分配後,application會在task因沒有足夠資源被掛起的時候去動態申請資源。當任務掛起或等待spark.dynamicAllocation.schelerBacklogTimeout(默認1s)的時間後,會開始動態資源分配;之後每隔spark.dynamicAllocation.(默認1s)時間申請一次,直到申請到足夠的資源。每次申請的資源量是指數增長的,即1,2,4,8等。

當application的executor空閑時間超過spark.dynamicAllocation.executorIdleTimeout(默認60s)後,就會被回收。

使用場景:同一個SQL語句需要同時更新多個分區,類似於如下SQL語句:

Ⅶ 如何優化 yarn 在 windows 下的進度條顯示

Windows優化大師優化系統不好,應該自己優化,方法,.修改注冊表來減少預讀取,減少進度條等待時間
Windows XP在啟動過程中會出現一個進度條,我們可以通過修改注冊表,讓進度條只跑一圈就進入登錄畫面。
選擇「開始」菜單中的「運行」命令,在「運行」對話框鍵入「regedit」命令後回車,即可啟動注冊表編輯器,在注冊表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Manager\Memory Management\PrefetchParameters,選擇其下的EnablePrefetcher鍵,把它
2.減少開機磁碟掃描等待時間
選擇「開始→運行」,在運行對話框中鍵入「chkntfs /t:0」,即可將磁碟掃描等待時間設置為0;如果要在計算機啟動時忽略掃描某個分區,比如C盤,可以輸入「chkntfs /x c:」命令;如果要恢復對C盤的掃描,可使用「chkntfs /d c:」命令,即可還原所有錯誤報告"按鈕,在彈出的"錯誤匯報"對話框中,選擇"禁用錯誤匯報"單選項,最後單擊"確定"即可

閱讀全文

與yarn配置優化編譯時間相關的資料

熱點內容
excel能編程嗎 瀏覽:929
android系統框架的介紹 瀏覽:945
無盤系統伺服器如何配置 瀏覽:836
背負貸款如何緩解壓力 瀏覽:82
linux獲取日期時間 瀏覽:881
搬磚問題最合適的演算法 瀏覽:446
小米安卓機密碼忘記了如何解鎖 瀏覽:910
產電plc編程手冊 瀏覽:761
vscodephp 瀏覽:535
阿里雲linux桌面 瀏覽:754
php二維數組搜索 瀏覽:116
ps快捷命令工具箱 瀏覽:253
c4d教程pdf 瀏覽:462
linux集群安裝配置 瀏覽:154
stc單片機介紹 瀏覽:901
如何解壓失戀的人 瀏覽:493
安卓微信滯後怎麼辦 瀏覽:942
手機編程跟電腦編程一樣嗎 瀏覽:624
android代碼規範文檔 瀏覽:99
word如何加密批註 瀏覽:327