林俊宏 參與研究生 :吳世麟、陳致毅

12
林林林 林林林林林 林林林林 林林林 :、 服服服服服服

Upload: mara-leach

Post on 30-Dec-2015

112 views

Category:

Documents


1 download

DESCRIPTION

服務品質衡量. 林俊宏 參與研究生 :吳世麟、陳致毅. HDFS 的 QoS 參數. dfs.replication 每個資料區塊要複製的數量 dfs.replication.max 資料區塊複製數量的最大值 dfs.replication.min 資料區塊複製數量的最小值 dfs.block.size 預設資料區塊的大小 dfs.blockreport.intervalMsec DataNode 每隔多少毫秒 (milliseconds) 回報其擁有哪些資料區塊給 NameNode(block report). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 林俊宏 參與研究生 :吳世麟、陳致毅

林俊宏參與研究生:吳世麟、陳致毅

服務品質衡量

Page 2: 林俊宏 參與研究生 :吳世麟、陳致毅

HDFS 的 QoS 參數 dfs.replication

◦ 每個資料區塊要複製的數量 dfs.replication.max

◦ 資料區塊複製數量的最大值 dfs.replication.min

◦ 資料區塊複製數量的最小值 dfs.block.size

◦ 預設資料區塊的大小 dfs.blockreport.intervalMsec

◦ DataNode 每隔多少毫秒 (milliseconds) 回報其擁有哪些資料區塊給 NameNode(block report)

Page 3: 林俊宏 參與研究生 :吳世麟、陳致毅

dfs.blockreport.initialDelay◦ NameNode 第一次收到來自 DataNode 的 block

report 前的延遲秒數 dfs.heartbeat.interval

◦ NameNode 每隔幾秒收到來自 DataNode 象徵其是否正常運作的心跳 (heartbeat)

dfs.access.time.precision◦ 存取 HDFS 大約需要的毫秒數

dfs.safemode.threshold.pct◦ 在 HDFS 檢查多少百分比的資料區塊的複製數量是否都有

大於或等於 dfs.replication.min dfs.safemode.extension

◦ 在 HDFS 檢查特定百分比的資料區塊的複製數量是否都有大於或等於 dfs.replication.min 後,再經過多少毫秒才能脫離只能讀取而不能寫入檔案的 safemode

Page 4: 林俊宏 參與研究生 :吳世麟、陳致毅

package org.apache.hadoop.fs◦ class FileSystem

public FSDataOutputStream create(Path f, boolean overwrite, int bufferSize, short replication, long blockSize) throws IOException 在指定的路徑 f 下開啟或創立一個資料區塊複製數為 replication ,

每個資料區塊大小為 blockSize MB 的檔案。資料區塊大小只能在新檔案創立時指定,之後無法變更;資料區塊複製數量在檔案創建後,可透過另外的 api 方法動態調整。

overwrite 為 true ,當檔案存在時,則以目前的設定覆蓋並建立新檔案;其值若為 false ,則當檔案存在時,此方法會投直錯誤。

bufferSize 為 buffer 大小

Page 5: 林俊宏 參與研究生 :吳世麟、陳致毅

public boolean setReplication(Path src, short replication) throws IOException 將一個已經存在的檔案 src 之資料區塊複製數量改成 replication 。

Page 6: 林俊宏 參與研究生 :吳世麟、陳致毅

HDFS 使用者管控 利用 RADIUS 管理帳號

◦ RADIUS server 具備 AAA 協議 ( 兼顧 Authentication、 Authorization 及 Accounting) ,使用者在使用HDFS 前必須完成 RADIUS 認證,才能與 namenode 進行互動,做資料的存取。

利用 RADIUS 設定使用者之權限與 QoS 參數。 可限制使用者之儲存資料空間。

◦ 每當使用者上傳一個檔案時,系統監視器檢驗該檔案和過去所上傳的檔案大小之總和是否有超過規定的空間容量,若超過則告知使用者該檔無法上傳。

Page 7: 林俊宏 參與研究生 :吳世麟、陳致毅

HDFS File Read

Page 8: 林俊宏 參與研究生 :吳世麟、陳致毅

File Transfer Finish Time Decreasing

Multiple datanodes involved for data retrieving (characteristic of Hadoop DFS: data fragmentation)

Bandwidth consideration for datanode selections

System modeling and performance analysis in progress.

Page 9: 林俊宏 參與研究生 :吳世麟、陳致毅

應用:網路監控 高資料量 HDFS 需要提供高傳輸品質之服務 設計 MapReduce 做分析 以 HTTP session 還原為例

◦ 還原封包遇到的困難地方 Transfer-Encoding: chunked ( 這種 response 可以動態

增加回傳的長度,在這種情況底下不會出現 Content-Length)

Content-Encoding: gzip ( 這種 response 會將封包壓縮後再傳送,所以必須自行解壓縮 )

根據 clientIP:clientPort,serverIP:serverPort 為 key 來將封包作分配

會遇到 client 使用了一個 port 傳輸 1 到多個檔案

Page 10: 林俊宏 參與研究生 :吳世麟、陳致毅

使用 Hadoop 還原 HTTP 封包 假設擷取的封包是根據 port 80 ( 不指定 port 80

也可以 ) ,並將擷取的封包儲存在 HDFS Mapper 的部份將每個封包以

clientIP:clientPort,serverIP,serverPort 為 key ;而封包本身為 value 的形式產生輸出給 reducer

Page 11: 林俊宏 參與研究生 :吳世麟、陳致毅

使用 Hadoop 還原 HTTP 封包 (Cont.) Reducer 的部份,相同的 key 會擁有多個 value 值 ( 屬於同

一個 key 的輸出會以類似陣列的形式給 reducer) 將 value 陣列裡面的值以時間做排序 (雖然在 mapper 以一般順序加入到輸出,但是在 reducer 的順序不一定跟 mapper 加入的順序相同,所以要先做排序 )

接著以 HTTP conversation 的流程◦ 遇到 request 包封就分析 request 要求的檔案為何◦ 遇到 response 包封就分析 response 回傳的檔案大小、壓縮方式

等等的方式是什麼來做還原◦ 遇到不是 HTTP 格式的封包,但是 port 是 80 的封包,可能是

client 送 ack 給 server ,或者 server 送 data chunk 給 client◦ 將 response 和 data chunk 的包封中 TCP data 部分加入到

hash 資料結構裡面,並以 sequence number 為 hash 的 key (這個地方要考慮到 duplicate packet 和 out-of-order packet 的問題 )

◦ 當所有包封街分析完畢以後,將 hash 裡面的資料還原成檔案

Page 12: 林俊宏 參與研究生 :吳世麟、陳致毅

使用 Hadoop 還原 HTTP 封包 (Cont.) 另一個問題是在一個 conversation 裡面, client 通常會使用一個 port 對 server 要求一個檔案,但是也可能遇到 client 使用一個 port 要求多個檔案,所以在還原封包時,一個 key 所伴隨的 value 陣列裡面,可能要還原一個以上的檔案

解決方式是當分析到的封包屬於 request ,就將之前存入 hash 資料結構裡面的資料當成一個已經分析完畢的檔案來還原,然後重新一個新的檔案還原

最後 reducer 將還原的檔案儲存到 hadoop 的 HDFS 裡面