當運用fifo排程器時,使用者提交的作業放到了三個容器中,核心**如下:
synchronized(jobs)
}}
jobs是jobtracker的成員變數,它其中存放的是的key-value對。
mapjobs = collections.synchronizedmap(new treemap());
通過jobs.values()方法,我們可以得到乙個存放jobinprogress物件的容器,裡面有正在執行的作業,失敗的作業,完成的作業,因此,我們通過就jobs就可以知道,此刻都是有哪些作業正在執行。
2. jobqueuejobinprogresslistener維護了乙個jobqueue,用來管理和排程所有的jobinprogress,如增加作業、移除作業以及更新作業。
private mapjobqueue;
public collectiongetjobqueue()
從jobqueue_details.jsp中,我們可以看到,它是通過jobqueue來獲取正在執行的作業列表的,作業排程時也是根據jobs來選擇優先順序高,開始時間早(提交時間即為開始時間)的作業來執行。。
3. eagertaskinitializationlistener中維護了乙個鍊錶,主要用於作業的初始化。
private listjobinitqueue = new arraylist();
對jobinitqueue根據優先順序和starttime進行排序後,後台執行緒負責對鍊錶中的作業進行初始化。
yarn中的三個排程器
fifo排程器,容量排程器,公平排程器系統預設是fifo排程器,具體用那種排程器需要結合實際情況來.具體的修改路徑在yarn site.xml fifo排程器 優點是,簡單易懂,不需要任何配置,但是不適合共享集群,大的應用匯占用集群的所有資源,所有每個應用必須等待直到輪到自己執行,在乙個共享集群中,...
Nexus預定的三個使用者
nexus 預定義了三個使用者,這三個使用者對應了三個許可權級別 admin 該使用者擁有對nexus服務的完全控制,預設密碼為 admin123,以下為admin使用者的角色樹 deployment 該使用者能夠訪問nexus,瀏覽倉庫 搜尋,並且上傳部署構件,但無法對nexus進行任何配置,預設...
處理機排程的三個層次
在多道程式環境中,記憶體中存在多個程序,其數目通常是多於處理機數目的。不論是出於提高處理機利用率 優先執行某個程序 提高系統吞吐量還是作業周轉時間,我們都需要能動態的將處理機分配給某個程序 就緒態 因此,處理機排程成為os中十分重要的乙個功能。為方便對比,將以 形式呈現 高階排程 中級排程 低階排程...