yarn是資源管理系統,理論上支援多種資源,目前支援cpu和記憶體兩種資源
yarn產生背景
直接源於mrv1在幾個方面的缺陷
擴充套件性受限
單點故障
難以支援mr之外的計算
多計算框架各自為戰,資料共享困難
mr:離線計算框架
storm:實時計算框架
spark:記憶體計算框架
yarn設計目標
通用的統一資源管理系統
同時首席執行官應用程式和短應用程式
長應用程式
通常情況下,永不停止執行的程式
service、http server等
短應用程式
短時間(秒級、分鐘級、小時級)內會執行結束的程式
mr job、spark job等
yarn基本架構
整個集群只有乙個,負責集群資源的統一管理和排程
詳細功能
處理客戶端請求
監控nodemanager
資源分配與排程
nodemanager
整個集群有多個,負責單節點資源管理和使用
詳細功能
單個節點上的資源管理和任務管理
處理來自resourcemanager的命令
每個應用有乙個,負責應用程式的管理
詳細功能
資料切分
為應用程式申請資源,並進一步分配給內部任務
任務監控與容錯
container
對任務執行環境的抽象
描述一系列資訊
任務執行資源(節點、記憶體、cpu)
任務啟動命令
任務執行環境
yarn執行過程
yarn容錯性
resourcemanager
存在單點故障;
正在基於zookeeper實現ha。
nodemanager
失敗後,rm將失敗任務告訴對應的am;
am決定如何處理失敗的任務。
失敗後,由rm負責重啟;
am需處理內部任務的容錯問題;
yarn排程框架
雙層排程框架
rm將資源分配給am
am將資源進一步分配給各個task
基於資源預留的排程策略
資源不夠時,會為task預留,直到資源充足
與「all or nothing」策略不同(apache mesos)
yarn資源排程器
多型別資源排程
採用drf演算法(**:「dominant resource fairness: fair allocation of multiple resource types」)
目前支援cpu和記憶體兩種資源
提供多種資源排程器
fifo
fair scheduler
capacity scheduler
多租戶資源排程器
支援資源按比例分配
支援層級佇列劃分方式
支援資源搶占
yarn資源隔離方案
支援記憶體和cpu兩種資源隔離
記憶體是一種「決定生死」的資源
cpu是一種「影響快慢」的資源
記憶體隔離
基於執行緒監控的方案
基於cgroups的方案
cpu隔離
預設不對cpu資源進行隔離
基於cgroups的方案
yarn支援的排程語義
支援的語義
請求某個特定節點/機架上的特定資源量
將某些節點加入(或移除)黑名單,不再為自己分配這些節點上的資源
請求歸還某些資源
不支援的語義
請求任意節點/機架上的特定資源量
請求一組或幾組符合某種特質的資源
超細粒度資源
動態調整container資源
執行在yarn上的計算框架 (還有別的)
離線計算框架:mapreduce
dag計算框架:tez
流式計算框架:storm
記憶體計算框架:spark
離線計算框架:mapreduce
僅適合離線批處理
具有很好的容錯性和擴充套件性
適合簡單的批處理任務
缺點明顯
啟動開銷大、過多使用磁碟導致效率低下等
dag計算框架:apache tez
dag計算:多個作業之間存在資料依賴關係,並形成乙個依賴關係有向圖( directed acyclic graph ),該圖的計算稱為「dag計算」
和mapreduce相比
tez應用場景
直接編寫應用程式
tez提供了一套通用程式設計介面
適合編寫有依賴關係的作業
優化pig、hive等引擎
好處1:避免查詢語句轉換成過多的mapreduce作業後產生大量不必要的網路和磁碟io
好處2:更加智慧型的任務處理引擎
流式計算框架:storm
storm on yarn(和其他如mapreduce、tez、spartk等都不同,其他計算框架的client)
記憶體計算框架:spark
已經形成了自己的生態系統
Metasploit技術初入門03
一般情況下剛開始得到shell的時候都是guest或者user許可權,許可權級別比較低。為了能做更多的事,比如獲取hash,安裝軟體,修改防火牆,修改登錄檔等,就需要獲得許可權管理員許可權,root就是夢想啊!為所欲為!提權的目標系統主要是windows和linux。提權的種類主要有兩種 橫向提權和...
大資料技術
如果沒有乙個好的開始,不妨試試乙個壞的開始吧。因為乙個壞的開始,總比沒有開始強。而完美的開始,則永遠都不會來到。資料採集傳輸主要技術 分為兩類,一類是離線批處理 另一類是實時資料採集和傳輸 離線批處理最有名的是sqoop 實時資料採集和傳輸最為常用的是flume和kafka sqoop 一款開源的離...
大資料技術
前言 學習了好久了,也沒有系統的整理過這些東西,感覺再這麼下去算是荒廢了,懶惰加上不思進取就這樣子過去大半年了,而且最近總是把技術聖地變成自己的宣洩的地方哈哈,隨便寫的啥都亂髮,打擾到各位了,在這裡給各位道歉了 經過乙個比賽感覺自己也學得不紮實,自從非正常退役acm以後,就距離乙個acmer越來越遠...