中華大學 資訊工程學系€¦ · master 與slave 在hadoop 中即為jobtracker...

26
中華大學 資訊工程學系 103 學年度 專題期末報告 T-Sort on Clouds B10002099 詹子儀 指導教授:許慶賢 教授 中華民國 2015 年一月一十九日

Upload: others

Post on 04-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

中華大學

資訊工程學系

103 學年度

專題期末報告

T-Sort on Clouds

B10002099 詹子儀

指導教授:許慶賢 教授

中華民國 2015 年一月一十九日

Page 2: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

1

摘要

T-Sort on Clouds 是一種預測雲端程式執行的時間,可以讓雲端平台業者在大量資

料需要分析的情況下,能排出最有利的工作運行順序,不僅可以減少資源占用的問題,

也可以大大提升執行效能。

T-Sort on Clouds 的主要概念是在雲端平台上來進行文字、甚至文章或是新聞的字

數分析,以利使用者在大量的文章中搜尋相關查詢的文件。

在本次的專題中,我們將會探討雲端計算的利益處以及比較雲端程式與單機程式

所需花費時間,並分析出各種益處。

Page 3: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

2

目錄

1. 背景知識介紹………………………………… 5

1.1 雲端運算……………………………………5

1.2 Big Data ……………………………………7

1.3 Hadoop …………………………………… 8

1.4 MapReduce ………………………………… 9

2. 研究方法 ………………………………… 11

2.1 初始概念和規劃 …………………………… 11

2.2 系統架構與設計 …………………………… 12

3. 硬體與軟體架構 …………………………… 13

4. 效能分析 ………………………………… 13

4.1 WordCount(結構化程式和平行程式之比較)… 14

4.2 WordCount(Hadoop 2.4.1) …………………… 19

4.3 Sort(Hadoop 2.4.1) …………………………… 21

5. 實驗結果與展示 ………………………… 23

6. 結論 ……………………………………… 24

7. 參考文獻…………………………………… 24

Page 4: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

3

圖目錄

圖(一) 雲端運算概觀…………………………………………………………… 5

圖(二) 雲端運算部署模型……………………………………………………… 6

圖(三)Big data ……………………………………………………………… 8

圖(四)Hadoop Logo…………………………………………………………… 8

圖(五)MapReduce 程式架構 ………………………………………………… 9

圖(六)MapReduce 程式執行階段圖…………………………………………… 10

圖(七)MapReduce 程式執行時間圖…………………………………………… 11

圖(八)實驗架構圖……………………………………………………………… 11

圖(九) MapReduce 程式流程圖 ………………………………………………… 12

圖(十)Data node 資料 ………………………………………………………… 13

圖(十一) 循序程式節構圖 ……………………………………………………… 14

圖(十二) 平行化程式 …………………………………………………………… 14

圖(十三) 程式設計畫面 ………………………………………………………… 15

圖(十四) 選取資料 ……………………………………………………………… 15

圖(十五) 程式實際輸出結果 …………………………………………………… 16

圖(十六) 結構化程式讀入較多文字的資料………………………………………17

圖(十七) 平行化程式讀入較多文字的資料………………………………………17

圖(十八) 結構化程式讀入較少文字的資料………………………………………18

圖(十九) 平行化程式讀入較少文字的資料………………………………………18

圖(二十) Map 程式分析圖…………………………………………………………19

圖(二十一)Reduce 程式分析圖……………………………………………………19

圖(二十二) WordCount 程式實際時間與預測時間折線圖 ……………………20

圖(二十三) Sort Map 程式分析圖 ……………………………………………… 21

圖(二十四)Sort Reduce 程式分析圖……………………………………………… 21

Page 5: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

4

圖(二十五) WordCount 程式實際時間與預測時間折線圖……………………………22

圖(二十六) 選擇 Pietty………………………………………………………………….23

圖(二十七) 登入畫面……………………………………………………………………23

圖(二十八) 建立 HDFS 資料夾…………………………………………………………23

圖(二十九) 上傳資料到 HDFS 中………………………………………………………23

圖(三十) 執行 WordCount 程式…………………………………………………………23

圖(三十一) 使用Randtextwriter產生資料 …………………………………………… 24

圖(三十二) 執行 Sort 程式………………………………………………………………24

表目錄 表(一)WordCount 程式執行時間統計表 ……………………………………………… 19

表(二) WordCount 程式實際時間與預測時間比較表………………………………… 20

表(三) Sort 程式執行時間統計表……………………………………………………… 21

表(四) Sort 程式實際時間與預測時間比較表………………………………………… 22

Page 6: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

5

1. 背景知識介紹

1.1 雲端運算

雲端運算(Cloud Computing),是一種基於網際網路的運算方式,透過這種方式,

共享的軟硬體資源和資訊可以按需求提供給電腦和其他裝置。

雲端運算是繼 1980 年代大型電腦到客戶端-伺服器的大轉變之後的又一種巨變。

用戶不再需要了解「雲端」中基礎設施的細節,不必具有相應的專業知識,也無需直

接進行控制。

使用者透過瀏覽器、桌面應用程式或是行動應用程式來存取雲端的服務。推廣者

認爲雲端運算使得企業能夠更迅速的部署應用程式,並降低管理的複雜度及維護成本,

及允許 IT 資源的迅速重新分配以因應企業需求的快速改變。

雲端運算依賴資源的共享以達成規模經濟,類似基礎設施。服務提供者整合大量

的資源供多個用戶使用,用戶可以輕易的請求或租借更多資源,並隨時調整使用量,

將不需要的資源釋放回整個架構,因此用戶不需要因爲短暫尖峰的需求就購買大量的

資源,僅需提升租借量,需求降低時便退租。服務提供者得以將目前無人租用的資源

重新租給其他用戶,甚至依照整體的需求量調整租金。

圖(一) 雲端運算概觀[1]。

Page 7: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

6

美國國家標準和技術研究院的雲端運算定義中明確了三種服務模式:

軟體即服務(SaaS):消費者使用應用程式,但並不掌控作業系統、硬體或運作

的網路基礎架構。是一種服務觀念的基礎,軟體服務供應商,以租賃的概念提供客戶

服務,而非購買,比較常見的模式是提供一組帳號密碼。

平台即服務(PaaS):消費者使用主機操作應用程式。消費者掌控運作應用程式

的環境,但並不掌控作業系統、硬體或運作的網路基礎架構。平台通常是應用程式基

礎架構。

基礎架構即服務(IaaS):消費者使用「基礎運算資源」,如處理能力、儲存空

間、網路元件或中介軟體。消費者能掌控作業系統、儲存空間、已部署的應用程式及

網路元件,但並不掌控雲端基礎架構。

雲端運算定義中也涉及了關於雲端運算的部署模型:

圖(二) 雲端運算部署模型[1]。

A. 公用雲(Public Cloud)

簡而言之,公用雲服務可透過網路及第三方服務供應者,開放給客戶使用,公用

雲供應者通常會對使用者實施使用存取控制機制,公用雲作為解決方案,既有彈性,

又具備成本效益。

Page 8: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

7

B. 私有雲(Private Cloud)

私有雲具備許多公用雲環境的優點,例如彈性、適合提供服務,兩者差別在於私

有雲服務中,資料與程式皆在組織內管理,且與公用雲服務不同,不會受到網路頻寬、

安全疑慮、法規限制影響;此外,私有雲服務讓供應者及使用者更能掌控雲端基礎架

構、改善安全與彈性,因為使用者與網路都受到特殊限制。

C. 社群雲(Community Cloud)

社群雲由眾多利益相仿的組織掌控及使用,例如特定安全要求、共同宗旨等。社

群成員共同使用雲端資料及應用程式。

D. 混合雲(Hybrid Cloud)

混合雲結合公用雲及私有雲,這個模式中,使用者通常將非企業關鍵資訊外包,

並在公用雲上處理,但同時掌控企業關鍵服務及資料[1]。

1.2 Big Data

大數據(英語:Big data),又稱巨量資料,是指所涉及的資料量規模巨大到無

法透過人工,在合理時間內達到擷取、管理、處理、並整理成為人類所能解讀的資訊。

在資料總量相同情況下,與個別分析獨立的小型資料集相比,將各個小型資料集合併

後進行分析可得出許多額外的資訊和資料關聯性,可用來察覺商業趨勢、判定研究品

質、避免疾病擴散、打擊犯罪或測定即時交通路況等;這樣的用途正是大型資料集盛

行的原因[2]。

Page 9: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

8

圖(三)Big data[4]。

大數據同時還具備了 (1) 大資料量 (Volume)、(2)輸入和處理的速度快

(Velocity)、(3)資料的多樣性(Variety)及(4) 資料的準確性(Veracity)這 4個特點。換

句話說,大資料是由數量巨大、結構複雜、類型多樣的資料所構成的資料集合[3]。

1.3 Hadoop

Hadoop 是一款由 Apache 支持數據密集型分佈式應用並以 Apache 2.0 許可協議發

佈的開源軟體框架。它支持在商品硬體構建的大型集群上運行的應用程序。Hadoop

是根據 Google 公司所發表的 MapReduce 和 Google 檔案系統的論文自行實作而成。

圖(四)Hadoop Logo[5]。

Page 10: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

9

Hadoop 為應用提供可靠性和數據移動。它實現了名為 MapReduce 的編程範式:

應用程序被分割成許多小部分,而每個部分都能在集群中的任意節點上執行或重新執

行。此外,Hadoop 還提供了分佈式文件系統,用以存儲所有計算節點的數據。

MapReduce 和分佈式文件系統的設計,使得整個框架能夠自動處理節點故障。它使應

用程序與成千上萬的獨立計算的電腦和 PB 級的數據[5]。

1.4 MapReduce

MapReduce 是由 Google 提出的一個軟體架構,用於大規模數據(大於 1TB)的平

行運算。當前的軟體實現是指定一個 Map 函數,用來把一組鍵值對映射成一組新的

鍵值對,指定並發的 Reduce(歸納)函數,用來保證所有映射的鍵值對中的每一個

共享相同的鍵組[6]。

圖(五)MapReduce 程式架構[7]。

Page 11: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

10

圖(六)MapReduce 程式執行階段圖[8]。

(1) Fork: 將要執行的 MapReduce 程式複製到 Master 與每一台 Slave node 上(此處的

Master 與 Slave 在 Hadoop 中即為 JobTracker 與 TaskTracker)

(2) Assign map: 由 Master node 決定 Map 和 Reduce 兩個 function 內的程式,分別要用

哪些 Slave node 執行

(3) Read: 圖示的 Split 在這邊指的是分割輸入資料後的資料片段,在執行 Map 程式的

Slave node,就會照著 Master 分配的資料連結,到 HDFS 裡面去找尋所要執行的資料

片段。

(4) Local write:資料片段依照 Map 程式處理完後,會產生中間資料(Intermediate files),

暫存在 Slave node 上,但在 Hadoop 中其實不單純只是將中間資料存在本機硬碟,還

會經過記憶體 Buffer 緩存和預排序等階段,目的是優化 Map 的性能。

(5) Remote read: 要執行 Reduce 程式的 Slave node,要從這些在不同位置的 Slave node

上,下載屬於它要執行的中間資料,作為 Reduce 程式的 input。而遠端讀取中間資料

的過程分成三階段:Copy (Shuffle)->Sort->Reduce

(6) Write: 最後將使用者需要的運算結果輸出。[8]

Page 12: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

11

圖(七)MapReduce 程式執行時間圖

如上圖所示,以網路相互連接各個節點,藉以在各個節點(Slave-node)分別

處理部分資料,以網路除送資料至主節點(Master-node),再由主節點將資料同整,

並且完成程式工作。

2. 研究方法

2.1 初始概念和規劃

以不同資料量大小,分析出有雲端平台(Hadoop)分析文件所需要的時間,並

且擬制出相關的公式,加以預測出不同資料量所執行出的時間和實際執行的時間

相差的比值。

圖(八)實驗架構圖

程式執行

統計執行時間

擬定公式

不同資料量大小輸入 程式執行

實際時間

計算預測公式與實際

執行時間誤差

Page 13: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

12

2.2 系統架構與設計

圖(九)MapReduce 程式流程圖[11]。

根據 MapReduce 程式執行階段圖,我們可以知道,在執行一個 MapReduce

程式的時候,程式所花費的時間主要是在 Map 跟 Reduce 的階段,所以在這次的

公式設定,主要以 Map 跟 Reduce 所需要的時間為這次實驗的基準。

由以上我們推定的公式,可以發現我們主要利用 Map 跟 Reduce 來進行主要

的預測

MRTTotal = MapMin + Reduce

Page 14: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

13

3. 硬體與軟體架構

圖(十)Data node 資料

Hadoop 版本: 2.4.1

節點: 10個

4. 效能分析

本次專題所分析的 Hadoop 程式主要以 WordCount 以及 Sort 為主要分析的

程式,除此之外本次專題也會比較雲端平行運算程式和單機視窗程式(以 C#程式

語言撰寫)所花費時間進行分析。

Page 15: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

14

4.1 WordCount(結構化程式 和 平行程式之比較)

結構化程式:

圖(十一)循序程式節構圖

可分為循序(sequence)、選擇(selection)及重複(repetition)[9]

循序程式是指程式正常的執行方式,執行完一個指令後,執行後面的指令。

選擇程式是依程式的狀態,選擇數段程式中的一個來執行,一般會使用

if…else…或 switch、case 等關係字來識別。

重複程式是指一直執行某一段程式,直到滿足特定條件,或是集合中的所有元

素均處理過,一般會使用 while、repeat、for 關鍵字識別。[10]

所謂【程式敘述】可以是:

1.常數、變數、連續記憶體、物件或物件相關之定義或宣告.

2.運算元與運算子混合的運算式.

3.呼叫內定、自訂函數或物件方法

平行化程式:

圖(十二)平行化程式

Page 16: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

15

圖(十三)程式設計畫面

程式設計概念: 以 WordCount 平行程式的概念來編寫,從一開始讀入

文件、文件分割以及文字的配對,都是以 Map 跟 Reduce 為基礎來設計程式。

圖(十四)選取資料

再利用所選的文件檔,讀入到程式裡文字的分割,然後再以逐字進行比

對,如果單字相同則計數值增加,若單字相同則新增一個序列。

Page 17: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

16

圖(十五)程式實際輸出結果

Page 18: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

17

而這一次的實驗,主要是比較結構化程式跟平行化程式,在有同樣的字數大

小,比較程式執行時間。

圖(十六)結構化程式讀入較多文字的資料

圖(十七)平行化程式讀入較多文字的資料

Page 19: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

18

圖(十八)結構化程式讀入較少文字的資料

圖(十九)平行化程式讀入較少文字的資料

我們在這一次的實驗中,我們可以發現在資料量較小的時候,結構化程式比起

平行化程式還要有效率,因為在執行平行化程式(MapReduce)時,程式需要分配執

行,所以花費更多時間;相反的,在資料量較大的時候,平行化程式比起結構化程

式更有效率,因為可以把資料分段給不同的節點處理,有效縮短執行時間。

Page 20: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

19

4.2 WordCount (Hadoop 2.4.1)

這個實驗主要是用不同大小的資料量,執行 WordCount 程式,並且以迴歸分

析分析出 Map 和 Reduce 時間。

表(一)WordCount 程式執行時間統計表

Data Size Elapsed Map Time Elapsed Reduce

Time

Elapsed

100 33 5 43

200 17 24 47

300 25 35 65

500 48 18 71

750 11 71 88

900 26 69 100

圖(二十)Map 程式分析圖

圖(二十一)Reduce 程式分析圖

y = -0.0017x + 23.435

0

10

20

30

40

50

60

0 200 400 600 800 1000

ELAPSED MAP TIME

y = 0.067x + 6.9314

0

20

40

60

80

100

0 200 400 600 800 1000

Elapsed Reduce Time

Page 21: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

20

根據前面提出過的公式,我們預測的公式為 MRT = Map + Reduce, 在上

面的圖(二十)跟圖(二十一)已經分析出各個的迴歸分析,因此推出 y = (0.0017x +

23.435) + (0.067x + 6.9314) , 公式中的X為資料量大小(MB),而 y為預測時間(Sec.)。

表(二) WordCount 程式實際時間與預測時間比較表

圖(二十二) WordCount 程式實際時間與預測時間折線圖

0

20

40

60

80

100

120

100 200 300 500 750 900

Elapsed

Prediction

Page 22: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

21

4.3 Sort (Hadoop 2.4.1)

這個實驗主要是用不同大小的資料量,執行 Sort 程式,並且以迴歸分析分析

出 Map 和 Reduce 時間。

表(三) Sort 程式執行時間統計表

圖(二十三) Sort Map 程式分析圖

圖(二十四)Sort Reduce 程式分析圖

y = 0.0567x + 33.778

0

20

40

60

80

100

0 100 200 300 400 500 600

Elapsed Map Time

y = 0.2483x + 10.278

0

20

40

60

80

100

120

140

160

0 100 200 300 400 500 600

Elapsed Reduce Time

Page 23: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

22

根據前面提出過的公式,我們預測的公式為 MRT = Map + Reduce, 在上面的

圖(二十三)跟圖(二十四)已經分析出各個的迴歸分析,因此推出 y = (0.0567x + 33.778)

+ (0.2483x + 10.278) , 公式中的 X為資料量大小(MB),而 y為預測時間(Sec.)。

表(四) Sort 程式實際時間與預測時間比較表

圖(二十五) WordCount 程式實際時間與預測時間折線圖

0

50

100

150

200

250

100 150 200 250 300 350 400 450 500

Elapsed

Prediction

Page 24: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

23

5. 實驗結果與展示

圖(二十六)選擇 Pietty

圖(二十七)登入畫面

WordCount:

圖(二十八)建立 HDFS 資料夾

圖(二十九)上傳資料到 HDFS 中

圖(三十)執行 WordCount 程式

Page 25: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

24

Sort:

圖(三十一)使用 Randtextwriter 產生資料

圖(三十二)執行 Sort 程式

6. 結論

由上述的實驗,我們可以得知,平行化程式在資料量大的時又會有最有效益,可

以藉由 Master-node 把資料分散只各個 Slave-node平行處理資料,再把 Slave-node

處理完的資料統一輸出,反之;在資料量小的時候,將資料分散的動作反而是最花時

間的一個動作。

7. 參考文獻

[1] 維基百科. (2014). 雲端運算. Available:

http://zh.wikipedia.org/wiki/%E9%9B%B2%E7%AB%AF%E9%81%8B%E

7%AE%97

[2] 維基百科. (2014). 大數據. Available:

http://zh.wikipedia.org/wiki/%E5%A4%A7%E6%95%B8%E6%93%9A

[3] 黃燕勤, "淺談大資料," 2014.

[4] B. Edge. (2014). Big data buzz or Big data fuzz. Available:

http://www.connexica.com/big-data-buzz-or-big-data-fuzz-2/#sthash.

DkWDq1AG.dpbs

[5] 維基百科, "Apache Hadoop," 2014.

[6] 維基百科, "MapReduce," 2014.

[7] B. B. Sergej Fries, "MapReduce," 2009.

Page 26: 中華大學 資訊工程學系€¦ · Master 與Slave 在Hadoop 中即為JobTracker 與TaskTracker) (2) Assign map: 由Master node 決定Map 和Reduce 兩個function 內的程式,分別要用

25

[8] Celia. (2013). MapReduce 學習記錄. Available:

http://imcelia.pixnet.net/blog/post/88232956-mapreduce%E5%AD%B

8%E7%BF%92%E8%A8%98%E9%8C%84

[9] 維基百科, "結構化編程," 2013.

[10] 漆慶福. VB.net 與 c # 循序結構. Available:

http://163.32.98.15/teacher/benme/vb-player/vb_C_sequence.htm

[11] L. C. Zhuoyao Zhang, and Boon Thau Loo, "Parameterizable

Benchmarking Framework for Designing a MapReduce Performance

Mode," 2013.