一、yarn的配置
修改每台叢集上的<code>yarn-site.xml</code>:
1
2
3
4
5
6
7
8
9
重新開機所有修改配置的節點。
二、spark的配置
配置<code>$spark_home/conf/spark-defaults.conf</code>,增加以下參數:
動态資源配置設定政策:
開啟動态配置設定政策後,application會在task因沒有足夠資源被挂起的時候去動态申請資源,這種情況意味着該application現有的executor無法滿足所有task并行運作。spark一輪一輪的申請資源,當有task挂起或等待<code>spark.dynamicallocation.schedulerbacklogtimeout</code>(預設1s)`時間的時候,會開始動态資源配置設定;之後會每隔spark.dynamicallocation.sustainedschedulerbacklogtimeout(預設1s)時間申請一次,直到申請到足夠的資源。每次申請的資源量是指數增長的,即1,2,4,8等。
之是以采用指數增長,出于兩方面考慮:其一,開始申請的少是考慮到可能application會馬上得到滿足;其次要成倍增加,是為了防止application需要很多資源,而該方式可以在很少次數的申請之後得到滿足。
資源回收政策:
當application的executor空閑時間超過<code>spark.dynamicallocation.executoridletimeout(預設60s)</code>後,就會被回收。
使用spark-sql on yarn執行sql,動态配置設定資源
以yarn-client模式啟動thriftserver
啟動後,thriftserver會在yarn上作為一個長服務來運作: