1 選題的目的和意義
1.1 設(shè)計(jì)的背景
Hadoop作為Apache基金會(huì)資助的開源項(xiàng)目,由Doug Cutting帶領(lǐng)的團(tuán)隊(duì)進(jìn)行開發(fā),基于Lucene和Nutch等開源項(xiàng)目,實(shí)現(xiàn)了Google的GFS和Hadoop能夠穩(wěn)定運(yùn)行在20個(gè)節(jié)點(diǎn)的集群;2006年1月,Doug Cutting加入雅虎公司,同年2月Apache Hadoop項(xiàng)目正式支持HDFS和MapReduce的獨(dú)立開發(fā)。同時(shí),新興公司Cloudera為Hadoop提供了商業(yè)支持,幫助企業(yè)實(shí)現(xiàn)標(biāo)準(zhǔn)化安裝,并志愿貢獻(xiàn)社區(qū)。
1.1 選題的現(xiàn)狀
1.1.1 海量數(shù)據(jù)時(shí)代的現(xiàn)狀
我們生活在數(shù)據(jù)的時(shí)代,很難估計(jì)全球的數(shù)據(jù)有多少,“數(shù)字宇宙”項(xiàng)目統(tǒng)計(jì)得出,2006年的數(shù)據(jù)總量為0.18zb,也就是10億TB。
問題1:數(shù)據(jù)處理速度不夠,以100mb每秒計(jì)算,讀取1tb的數(shù)據(jù)需要2個(gè)半小時(shí)。一個(gè)比較好的方案就是把數(shù)據(jù)放在100個(gè)磁盤中每個(gè)磁盤中存放1%的數(shù)據(jù)并行讀取,不到2min就能讀取所有數(shù)據(jù)。經(jīng)過統(tǒng)計(jì)用戶的分析工作會(huì)在不同的時(shí)間點(diǎn)進(jìn)行,所以用戶相互間的干擾不會(huì)太大。但是一旦硬件發(fā)生故障,用戶的數(shù)據(jù)就會(huì)丟失,所以要準(zhǔn)備多份。(HDFS)
問題2:需要從100個(gè)磁盤中取出數(shù)據(jù)結(jié)合使用。Mapreduce將這個(gè)問題抽象,轉(zhuǎn)化為對(duì)一個(gè)數(shù)據(jù)集合的計(jì)算。這個(gè)計(jì)算模型分為map和reduce兩個(gè)階段,只有這兩個(gè)部分對(duì)外提供接口。
舉例 Rackspace的一個(gè)部門Mailtrust:mapreduce是一種比較蠻力的辦法,每個(gè)查詢幾乎需要處理整個(gè)數(shù)據(jù)集,至少是數(shù)據(jù)集的很大一部分。在合理的時(shí)間內(nèi)對(duì)整個(gè)數(shù)據(jù)集合的數(shù)據(jù)即時(shí)查詢,是對(duì)數(shù)據(jù)的一種創(chuàng)新。rackspace的mailtrust部門,使用hadoop處理郵件日志,他們做用戶地理分布查詢!斑@些數(shù)據(jù)非常有用,每個(gè)月運(yùn)行一次決定哪些rackspace數(shù)據(jù)中心需要添加新的郵件服務(wù)器“。通過整合數(shù)百GB的數(shù)據(jù),并分析,可以通過這些數(shù)據(jù)改善現(xiàn)有服務(wù)。
1.1.2 Hadoop的發(fā)展史
Hadoop起源于Nutch網(wǎng)絡(luò)搜索引擎,Nutch是Lucene(一個(gè)文本搜索系統(tǒng)庫(kù))的一部分,創(chuàng)始人為Doug Cutting。
Nutch項(xiàng)目開始于2002年
2004年開始開發(fā)GFS的開源版本NDFS,谷歌發(fā)表論文向全世界介紹它的mapreduce系統(tǒng)。
2005年實(shí)現(xiàn)了mapreduce的開源版本。
2006年將hadoop移出Nutch獨(dú)立成為一個(gè)項(xiàng)目,hadoop創(chuàng)始人進(jìn)入雅虎
2008年Hadoop成為apache頂級(jí)項(xiàng)目,證明了其成功。209S 完成1tb數(shù)據(jù)排序 2009年4月 59秒排序500GB 1400節(jié)點(diǎn) 173分鐘排序100T的數(shù)據(jù)3400節(jié)點(diǎn) 典型案例 紐約時(shí)報(bào) facebook last.fm
1.1.3 Hadoop生態(tài)系統(tǒng)
Common:IO組件于接口(序列化,javaRPC,持久化數(shù)據(jù)結(jié)構(gòu))
Pig: 數(shù)據(jù)流語(yǔ)言和運(yùn)行環(huán)境,檢索非常大的數(shù)據(jù)集
Hive: 管理HDFS中的數(shù)據(jù),提供sql查詢
Hbase: 安列存儲(chǔ)數(shù)據(jù)庫(kù),支持批量式計(jì)算和點(diǎn)查詢
ZooKeeper: 一個(gè)分布式、可用性高的協(xié)調(diào)系統(tǒng)。ZooKeeper提供分布式鎖之類的基本服務(wù)用于構(gòu)建分布式應(yīng)用。
Sqoop: 在數(shù)據(jù)庫(kù)和HDFS之間高效傳輸?shù)臄?shù)據(jù)工具。
Kerberos:實(shí)現(xiàn)的是機(jī)器級(jí)別的安全認(rèn)證,也就是前面提到的服務(wù)到服務(wù)的認(rèn)證問題。防止了用戶偽裝成Datanode,Tasktracker,去接受JobTracker,Namenode的任務(wù)指派。Kerberos對(duì)可信任的客戶端提供認(rèn)證,確保他們可以執(zhí)行作業(yè)的相關(guān)操作。防止用戶惡意冒充client提交作業(yè)的情況。用戶無(wú)法偽裝成其他用戶入侵到一個(gè)HDFS或者M(jìn)apReduce集群上。用戶即使知道datanode的相關(guān)信息,也無(wú)法讀取HDFS上的數(shù)據(jù),用戶無(wú)法發(fā)送對(duì)于作業(yè)的操作到JobTracker上。
2 主要研究的內(nèi)容
2.1 系統(tǒng)概述
2.1.1 功能與作用
眾所周知,現(xiàn)代社會(huì)的信息量增長(zhǎng)速度極快,這些信息里又積累著大量的數(shù)據(jù),其中包括個(gè)人數(shù)據(jù)和工業(yè)數(shù)據(jù)。預(yù)計(jì)到2020年,每年產(chǎn)生的數(shù)字信息將會(huì)有超過1/3的內(nèi)容駐留在云平臺(tái)中或借助云平臺(tái)處理。我們需要對(duì)這些數(shù)據(jù)進(jìn)行分析和處理,以獲取更多有價(jià)值的信息。那么我們?nèi)绾胃咝У卮鎯?chǔ)和管理這些數(shù)據(jù),如何分析這些數(shù)據(jù)呢?這時(shí)可以選用Hadoop系統(tǒng),它在處理這類問題時(shí),采用了分布式存儲(chǔ)方式,提高了讀寫速度,并擴(kuò)大了存儲(chǔ)容量。采用MapReduce來(lái)整合分布式文件系統(tǒng)上的數(shù)據(jù),可保證分析和處理數(shù)據(jù)的高效。與此同時(shí),Hadoop還采用存儲(chǔ)冗余數(shù)據(jù)的方式保證了數(shù)據(jù)的安全性。
Hadoop中HDFS的高容錯(cuò)特性,以及它是基于Java語(yǔ)言開發(fā)的,這使得Hadoop可以部署在低廉的計(jì)算機(jī)集群中,同時(shí)不限于某個(gè)操作系統(tǒng)。Hadoop中HDFS的數(shù)據(jù)管理能力,MapReduce處理任務(wù)時(shí)的高效率,以及它的開源特性,使其在同類的分布式系統(tǒng)中大放異彩,并在眾多行業(yè)和科研領(lǐng)域中被廣泛采用。
2.1.2 具體任務(wù)
對(duì)本系統(tǒng)分析后,系統(tǒng)的具體任務(wù)主要如下:
1) 調(diào)研該項(xiàng)目的狀況和成果。
2) 對(duì)所選題目進(jìn)行可行性分析,從技術(shù)和可操作性上進(jìn)行分析
3) 根據(jù)目前掌握和了解的技術(shù)選擇最適合的開發(fā)工具和開發(fā)語(yǔ)言,對(duì)所用到的
技術(shù)及語(yǔ)言相關(guān)知識(shí)進(jìn)行學(xué)習(xí)鞏固
4) 配置,部署hadoop
5) 測(cè)試,使用hadoop
2.1.3 設(shè)備要求
1) 操作系統(tǒng)
CentOS6.2
2) Hadoop-1.0.4-1
3) JDK1.6.0_04
2.2 系統(tǒng)設(shè)計(jì)
2.2.1 體系結(jié)構(gòu)
Hadoop的核心框架包括兩個(gè)部分:HDFS 和Mapreduce;HDFS(即Hadoop Distributed System的縮寫)是分布式計(jì)算的基石,而Mapreduce是任務(wù)的分解和結(jié)果的匯總。簡(jiǎn)單的說,Map就是 將一個(gè)任務(wù)分解成 為多個(gè)任務(wù),而Reduce就是將分解后多任務(wù)處理的結(jié)果匯總起來(lái)得出最后的結(jié)果;HDFS是一個(gè)與其它文件系統(tǒng)類似的,對(duì)于整個(gè)集群有單一的命名空間,文件被分割為多塊分配存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)上的一個(gè)系統(tǒng)。
圖2.1 數(shù)據(jù)處理流程圖
3 設(shè)計(jì)的預(yù)期結(jié)果
1) 部署和測(cè)試hadoop
隨時(shí)掌控工作的全面情況。
2) 使用hadoop
用來(lái)實(shí)現(xiàn)諸如統(tǒng)計(jì)單詞出現(xiàn)次數(shù)的mapreduce程序
1.開題報(bào)告寫作內(nèi)容參考
2.壓鑄開題報(bào)告參考案例
3.開題報(bào)告范例參考
4.開題報(bào)告范本參考
5.開題報(bào)告的范文參考
6.論文開題報(bào)告的大綱參考
7.關(guān)于ofdm的開題報(bào)告
8.關(guān)于課題開題的報(bào)告
9.關(guān)于華工的開題報(bào)告
10.關(guān)于課題開題報(bào)告格式