第二章 關於MapReduce

2021-08-07 04:02:53 字數 1206 閱讀 7943

1.      mapreduce作業(job)是客戶端需要執的乙個工作單元。hadoop將job分成若干個小任務(task)來執行,其中包括兩類任務:map任務和reduce任務。

2.      hadoop將mapreduce的輸入資料劃分成等長的小資料塊,成為輸入分片,簡稱「分片」(split),每個分片的大小趨向於hdfs的乙個塊的大小,預設是64mb。

3.      hadoop為每個分片構建乙個map任務,每個datanode節點只能有乙個map。

4.      機架感知可以確定兩個節點是否在同一機架上。

5.      map任務將其輸出寫入本地硬碟,reduce任務將輸出結果寫入hdfs。

7.      乙個完整的mapreduce至少發生兩次網路傳輸。map輸出經過排序傳送到reduce,這一過程成為shuffle,通過網路寬頻傳輸。reduce將結果寫入hdfs這一過程也需要通過網路傳輸。

每日一問

: yarn排程策略有幾種?

1. yarn資源排程管理器。yarn的自願抽象比較簡單,只有兩種資源:記憶體和cpu。其中記憶體資源比較關鍵,直接決定任務能否成功。如果某個任務需要的記憶體過多,可能無法執行或者oom。cpu資源的限制比較弱,只限定了一台nm上能併發執行多少任務。如果併發的過多,執行的可能比較慢。

2. container是rm分配資源的基本單位。每個container包含特定數量的cpu資源和記憶體資源,使用者的程式執行在container中,有點類似虛擬機器。rm負責接收使用者的資源請求並非配container,nm負責啟動container並監控資源使用。如果使用資源(目前只有記憶體)超出container的限制,相應程序會被nm殺掉。可見container不止用於資源分配,也用於資源隔離。理論上說不同container之間不能互相影響。

3. yarn常用排程器:

-         fifo

u  缺點:耗時的長任務會導致後提交的任務一直處於等待狀態;不適合共享集群。

-         capacityscheduler

u  capacity scheduler為每個人分配乙個佇列,每個佇列占用的集群資源是固定的,但是可以不同,佇列內部還是採用fifo排程的策略。

-         fairscheduler

u  fair scheduler 試圖為每個任務均勻分配資源,比如當前只有任務 1 在執行,那麼它擁有整個集群資源,此時任務 2 被提交,那任務 1 和任務 2 將平分集群資源,以此類推

MySQL第二章總結 Mysql第二章 儲存引擎

1 本章目標 儲存引擎 資料型別 重點 2 儲存引擎 在關係型資料庫中,資料儲存在表中,表由行和列組成。開發中,可能需要各種不同的表,有的表簡單,有的表複雜,有的表讀取快,有的讀取資料慢,有的表更新快等。根據對資料的不同的處理需求,使用不同的儲存引擎,可以將mysql資料庫的效能發揮到最大。查詢my...

領悟(第二章)

當火車緩緩駛進車站的時候,夜幕已經降臨了。終於到了!望著窗外鐵道兩旁的燈火,我的內心不禁再一次的激動起來,一路上對今後在這個大都市的未來生活的想象已經讓我從昨天晚上上車一直興奮到現在了!平常這個時候應該正和朋友們一起在酒吧聊天吧,朋友們,你們現在還在談論我來這裡的目的麼?說實話,這個問題連我自己都說...

第二章 入門

第二章 入門 1 django 安裝 使用 django 的唯一先決條件是安裝 python 在 linux 平台可能包括如下步驟 2 tar xzvf django tar.gz。3 cd django 4 sudo python setup.py install。2 匯入 django模組 im...