Download presentation
Presentation is loading. Please wait.
1
實現雲端運算 Hadoop HDFS 磁碟及記憶體之即時分級服務
輔仁大學 資訊工程研究所 指導老師:葉佐任 博士 研究生:孫逸峰
2
Outline Introduction Background Design and Implementation Experiment
Future Work Conclusion
3
Introduction (1) CPU與硬碟效能上的差距。 雲端系統中執行程式的效能瓶頸。
提升雲端系統中程式的執行I/O優先權,縮短I/O優先權程式執行時間。 結合作業系統核心(kernel)與Hadoop,發展具有I/O優先權機制的雲端環境。
4
Linux Operating System
Introduction (2) Hadoop Linux Operating System Hardware User Interface MapReduce Hadoop Distributed File System (HDFS)
5
Background (1) 讀取HDFS檔案流程 Hadoop Hadoop客戶端 Namenode Datanode1
Namenode,我要讀取123.txt 請至Datanode2中第5~10的區塊讀取 Hadoop客戶端 Namenode 5 6 7 8 9 10 Datanode1 Datanode2 Datanode3
6
Background (2) 寫入檔案至HDFS流程 Hadoop Hadoop客戶端 Namenode Datanode1
Namenode,我要寫入456.txt Datanode1,我要寫入456.txt 請寫入至Datanode1中 456.txt 1 2 3 4 Hadoop客戶端 Namenode 1 2 3 4 1 2 3 4 Datanode1 Datanode2 Datanode3
7
Background (3) JobTracker分配MapReduce工作流程 Datanode1 (Tasktracker1)
Namenode (JobTracker) Datanode2 (TaskTracker2) job1 1 2 3 4 5 6 Datanode3 (TaskTracker3) job2 7 8 9 6 10 11 12
8
Background (4) Completely Fair Queuing (CFQ)為Linux預設使用的磁碟排程器。
PCFQ為在CFQ磁碟排程器中加入優先權的研究。
9
Design and Implementation (1)
研究設計重點部分: - 修改Hadoop中HDFS運作機制。 - 於kernel中使用PCFQ磁碟排程器,並將 記憶體置換機制加入優先權概念。 - 提供使用者執行I/O優先權的介面。
10
Design and Implementation (2)
Namenode建立優先權名單,並管控使用者能否執行I/O優先權指令的權力。
11
Design and Implementation (3)
客戶端成功申請I/O優先權後,可使用sethigh指令提升程式的I/O優先權。 sethigh指令提高程式I/O優先權範例: 客戶端修改socket封包內容並送往給Datanode sethigh hadoop fs –get source-file destination-file
12
Design and Implementation (4)
客戶端發送讀取HDFS檔案的socket封包內容 - passpriority為1代表具有I/O優先權,為0則沒有。
13
Design and Implementation (5)
客戶端發送寫入HDFS檔案的socket封包內容 - passpriority為1代表具有I/O優先權,為0則沒有。
14
Design and Implementation (6)
Datanode接收工作要求封包,將檢查封包中passpriority欄位值。 詢問Namenode此封包的發送者是否為合法的I/O優先權使用者。 Namenode若回傳True,Datanode則告知PCFQ磁碟排程器此封包要求為具有I/O優先權。
15
Experiment (1) 實驗環境 Hadoop環境中有一台Namenode與三台Datanode Software Hardware
Ubuntu LTS with kernel Hadoop 1.2.1 Hardware Namenode: CPU: Intel Core i5-2400S 2.50GHz RAM: 4GB DDR3 Hard Disk: SATA3 500GB 7200rpm
16
Experiment (2) 實驗環境 Hardware Datanode:
CPU: Intel Core 2 Duo E GHz RAM: 2GB DDR2 Hard Disk: SATA3 500GB 7200rpm 網路設備: Gigabit switch with Cat5e network wire
17
Experiment (3) 實驗設計 - 模擬一個忙碌的Hadoop環境,同時執行 多個程式,並分別執行以下實驗。 - TestDFSIO
- TeraSort - HDFS讀寫檔案程式
18
Experiment (4) 實驗設計 - 在以下三種情形中進行實驗數據比較
19
Experiment (5) 設定TestDFSIO(w)為I/O優先權程式
20
Experiment (6) 設定TestDFSIO(r)為I/O優先權程式
21
Experiment (7) 設定Terasort為I/O優先權程式(1)
22
Experiment (8) 討論Terasort提升效率不明顯之原因: - Terasort為CPU-bound的工作
23
Experiment (9) 設定Terasort為I/O優先權程式(2)
24
Experiment (10) 設定Terasort為I/O優先權程式(3)
25
Experiment (11) 權程式執行效率之原因: 全為執行MapReduce程式可提升具有I/O優先
MapReduce程式須經由JobTracker排班分配工作 具有I/O優先權的程式能提早將MapReduce程式所需要的檔案資料傳至HDFS中 比其它無I/O優先權程式更早被JobTracker分配工作給TaskTracker執行。
26
Experiment (12) 設定讀取檔案程式READ10G_1為I/O優先權程式
27
Experiment (13) 設定讀取檔案程式WRITE10G_1為I/O優先權程式
28
Experiment (14) 設定READ10G_1、 READ10G_2、 READ10G_3為I/O優先權程式
29
Experiment (15) 設定READ10G_1、 READ10G_2、 WRITE10G_1為I/O優先權程式
30
Experiment (16) 設定READ10G_1、 WRITE10G_1、 WRITE10G_2為I/O優先權程式
31
Experiment (17) 設定WRITE10G_1、 WRITE10G_2、 WRITE10G_3為I/O優先權程式
32
Experiment (18) 設定READ10G_1為I/O優先權程式(加入MapReduce工作一起執行)
33
Experiment (19) 設定WRITE10G_1為I/O優先權程式(加入MapReduce工作一起執行)
34
Future Work Hadoop部分: - 結合JobTracker的工作排班機制 作業系統部分: - 結合CPU優先權機制
- 結合磁碟NCQ指令加入優先權的概念
35
Conclusion Hadoop HDFS中加入I/O優先權機制,能有效提升具有I/O優先權程式的執行效能。
Hadoop中新增處理I/O優先權的機制後,在只執行一般程式下,幾乎不會影響執行效率。
36
Thank you
37
補充資料 (1) HDFS讀取檔案流程:
38
補充資料 (2) HDFS寫入檔案流程:
39
補充資料 (3) Linux kernel 原始記憶體置換機制:
40
補充資料 (4) Linux kernel 優先權頁面記憶體置換機制:
41
補充資料 (5) I/O優先權傳遞流程:
Similar presentations