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