2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  近幾年來(lái),隨著計(jì)算機(jī)和信息技術(shù)的迅猛發(fā)展和普及應(yīng)用,行業(yè)應(yīng)用系統(tǒng)的規(guī)模迅速擴(kuò)大,行業(yè)應(yīng)用所產(chǎn)生的數(shù)據(jù)呈爆炸性增長(zhǎng)。動(dòng)輒達(dá)到數(shù)百TB甚至數(shù)十至數(shù)百 PB規(guī)模的行業(yè)或企業(yè)大數(shù)據(jù)已遠(yuǎn)遠(yuǎn)超出了現(xiàn)有傳統(tǒng)的計(jì)算技術(shù)和信息系統(tǒng)的處理能力。因此,尋求有效的大數(shù)據(jù)處理技術(shù)、方法和手段已經(jīng)成為現(xiàn)實(shí)世界的迫切需求。百度目前的總數(shù)據(jù)量已超過(guò)1000

2、PB,每天需要處理的網(wǎng)頁(yè)數(shù)據(jù)達(dá)到10PB~100PB;淘寶累計(jì)的交易數(shù)據(jù)量高達(dá)100PB;Twitter每天發(fā)布超過(guò)2億條消息,新浪微博每天發(fā)帖量達(dá)到8000萬(wàn)條;中國(guó)移動(dòng)一個(gè)省的電話通聯(lián)記錄數(shù)據(jù)每月可達(dá) 0.5PB~1PB;一個(gè)省會(huì)城市公安局道路車(chē)輛監(jiān)控?cái)?shù)據(jù)三年可達(dá)200億條、總量120TB。據(jù)世界權(quán)威IT信息咨詢分析公司IDC研究報(bào)告預(yù)測(cè):全世界數(shù)據(jù)量未來(lái)10年將從2009年的0.8ZB增長(zhǎng)到2020年的35ZB(1ZB=1000E

3、B=1000000PB),10年將增長(zhǎng)44倍,年均增長(zhǎng) 40%。 </p><p>  由于數(shù)據(jù)量的快速增長(zhǎng),對(duì)大數(shù)據(jù)的操作和結(jié)構(gòu)化查詢?cè)谌粘5臄?shù)據(jù)處理經(jīng)常用到,聚集查詢也是查詢時(shí)使用比較多的查詢。</p><p>  關(guān)鍵詞:聚集查詢;結(jié)構(gòu)化查詢</p><p><b>  ABSTRACT</b></p><p>

4、;  In recent years,  with the rapid development of  computer and information technology,, industry application system has expanded , and the data

5、 generated by the applciations grows fast. The data which always reaches hundreds of TB or tens to hundreds of PB has been far beyond the e

6、xisting traditional  processing capacity of information system. Therefore, to seek effective data processing technology, method and mea

7、ns is in great need in  the real world.Baidu now owns data exceeded 100PB, and it </p><p>  Due to the rapid growth in data volume,  the

8、 operation of the large data structured query is often used in the daily data processing, aggregate query is one of the queri

9、es used mostly in big data processing. </p><p>  Keywords:Aggregate Query; Structured Query</p><p><b>  1 緒論1</b></p><p>  1.1 本文研究的背景和意義1</p><p>  1.2

10、國(guó)內(nèi)外研究現(xiàn)狀與熱點(diǎn)4</p><p>  1.2.1大數(shù)據(jù)研究文獻(xiàn)的國(guó)別和機(jī)構(gòu)分布4</p><p>  1.2.2大數(shù)據(jù)研究的學(xué)科領(lǐng)域分布5</p><p>  1.2.3大數(shù)據(jù)產(chǎn)業(yè)技術(shù)創(chuàng)新的重點(diǎn)方向5</p><p>  1.3 論文主要研究?jī)?nèi)容6</p><p>  1.3.1 hdfs存儲(chǔ)數(shù)據(jù)概述

11、6</p><p>  1.3.2 mapreduce基本原理介紹7</p><p>  2 相關(guān)理論和技術(shù)9</p><p>  2.1 MapReduce基本理論9</p><p>  2.1.1 MapReduce簡(jiǎn)介9</p><p>  2.1.2 MapReduce實(shí)現(xiàn)框架10</p>

12、<p>  2.1.3 MapReduce編程模式10</p><p>  2.1.4 MapReduce控制節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)和容錯(cuò)機(jī)制11</p><p>  2.1.5 MapReduce的作業(yè)調(diào)度機(jī)制12</p><p>  2.2 數(shù)據(jù)的結(jié)構(gòu)化查詢13</p><p>  2.3 hadoop的hdfs存儲(chǔ)13&

13、lt;/p><p>  3 結(jié)構(gòu)化查詢到mapreduce轉(zhuǎn)化14</p><p>  3.1實(shí)驗(yàn)平臺(tái)的搭建14</p><p>  3.1.1 三種環(huán)境介紹14</p><p>  3.1.2偽分布環(huán)境搭建:15</p><p>  3.2結(jié)構(gòu)化聚集查詢分析21</p><p>  3.

14、3分布式存儲(chǔ)和分布式計(jì)算介紹23</p><p>  4 實(shí)驗(yàn)驗(yàn)證與程序的運(yùn)行結(jié)果24</p><p>  4.1單機(jī)環(huán)境運(yùn)行結(jié)果24</p><p>  4.2偽分布式環(huán)境的運(yùn)行結(jié)果26</p><p>  4.2.1 大數(shù)據(jù)文件上傳的分布式環(huán)境存儲(chǔ)系統(tǒng)(hdfs)26</p><p>  4.2.2 在偽

15、分布環(huán)境下運(yùn)行mapreduce程序27</p><p>  5 實(shí)驗(yàn)結(jié)果分析31</p><p>  6 重要代碼分析31</p><p><b>  7總結(jié)與展望32</b></p><p><b>  7.1總結(jié)32</b></p><p>  7.1.1 取

16、得的結(jié)果和收獲32</p><p>  7.1.2存在的不足33</p><p>  7.2對(duì)大數(shù)據(jù)的展望33</p><p><b>  參考文獻(xiàn)34</b></p><p><b>  致 謝35</b></p><p><b>  1 緒論<

17、/b></p><p>  1.1 本文研究的背景和意義</p><p>  早幾年人們把大規(guī)模數(shù)據(jù)稱(chēng)為“海量數(shù)據(jù)”,但實(shí)際上,大數(shù)據(jù)(Big Data)這個(gè)概念早在2008年就已被提出。2008年,在Google成立10周年之際,著名的《自然》雜志出版了一期專(zhuān)刊,專(zhuān)門(mén)討論未來(lái)的大數(shù)據(jù)處理相關(guān)的一系列技術(shù)問(wèn)題和挑戰(zhàn),其中就提出了“Big Data”的概念。</p>&

18、lt;p>  隨著大數(shù)據(jù)概念的普及,人們常常會(huì)問(wèn),多大的數(shù)據(jù)才叫大數(shù)據(jù)?其實(shí),關(guān)于大數(shù)據(jù),難以有一個(gè)非常定量的定義。維基百科給出了一個(gè)定性的描述:大 數(shù)據(jù)是指無(wú)法使用傳統(tǒng)和常用的軟件技術(shù)和工具在一定時(shí)間內(nèi)完成獲取、管理和處理的數(shù)據(jù)集。進(jìn)一步,當(dāng)今“大數(shù)據(jù)”一詞的重點(diǎn)其實(shí)已經(jīng)不僅在于數(shù)據(jù)規(guī)模的定 義,它更代表著信息技術(shù)發(fā)展進(jìn)入了一個(gè)新的時(shí)代,代表著爆炸性的數(shù)據(jù)信息給傳統(tǒng)的計(jì)算技術(shù)和信息技術(shù)帶來(lái)的技術(shù)挑戰(zhàn)和困難,代表著大數(shù)據(jù)處理所需的

19、新的技 術(shù)和方法,也代表著大數(shù)據(jù)分析和應(yīng)用所帶來(lái)的新發(fā)明、新服務(wù)和新的發(fā)展機(jī)遇。</p><p>  由于大數(shù)據(jù)處理需求的迫切性和重要性,近年來(lái)大數(shù)據(jù)技術(shù)已經(jīng)在全球?qū)W術(shù)界、工業(yè)界和各國(guó)政府得到高度關(guān)注和重視,全球掀起了一 個(gè)可與20世紀(jì)90年代的信息高速公路相提并論的研究熱潮。美國(guó)和歐洲一些發(fā)達(dá)國(guó)家政府都從國(guó)家科技戰(zhàn)略層面提出了一系列的大數(shù)據(jù)技術(shù)研發(fā)計(jì)劃,以推動(dòng)政 府機(jī)構(gòu)、重大行業(yè)、學(xué)術(shù)界和工業(yè)界對(duì)大數(shù)據(jù)技術(shù)的探

20、索研究和應(yīng)用。</p><p>  早在2010年12月,美國(guó)總統(tǒng)辦公室下屬的科學(xué)技術(shù)顧問(wèn)委員會(huì)(PCAST)和信息技術(shù)顧問(wèn)委員會(huì)(PITAC)向奧巴馬和國(guó)會(huì)提交了一份 《規(guī)劃數(shù)字化未來(lái)》的戰(zhàn)略報(bào)告,把大數(shù)據(jù)收集和使用的工作提升到體現(xiàn)國(guó)家意志的戰(zhàn)略高度。報(bào)告列舉了5個(gè)貫穿各個(gè)科技領(lǐng)域的共同挑戰(zhàn),而第一個(gè)最重大的挑 戰(zhàn)就是 “數(shù)據(jù)”問(wèn)題。報(bào)告指出:“如何收集、保存、管理、分析、共享正在呈指數(shù)增長(zhǎng)的數(shù)據(jù)是我們必須面對(duì)

21、的一個(gè)重要挑戰(zhàn)”。報(bào)告建議:“聯(lián)邦政府的每一個(gè)機(jī)構(gòu)和 部門(mén),都需要制定一個(gè)‘大數(shù)據(jù)’的戰(zhàn)略”。2012年3月,美國(guó)總統(tǒng)奧巴馬簽署并發(fā)布了一個(gè)“大數(shù)據(jù)研究發(fā)展創(chuàng)新計(jì)劃”(Big Data R & D Initiative),由美國(guó)國(guó)家自然基金會(huì)(NSF)、衛(wèi)生健康總署(NIH)、能源部(DOE)、國(guó)防部(DOD)等6大部門(mén)聯(lián)合,投資2億美元啟 動(dòng)大數(shù)據(jù)技術(shù)研發(fā),這是美國(guó)政府繼1993年宣布“信息高速公路”計(jì)劃后的又一次重大科技發(fā)展

22、部署。美國(guó)白宮科技政策辦公室還專(zhuān)門(mén)支持建立了一個(gè)大數(shù)據(jù)技術(shù)論壇,鼓勵(lì)企業(yè)和組織機(jī)構(gòu)間的大數(shù)據(jù)技術(shù)交流與合作。</p><p>  2012年7月,聯(lián)合國(guó)在紐約發(fā)布了一本關(guān)于大數(shù)據(jù)政務(wù)的白皮書(shū)《大數(shù)據(jù)促發(fā)展:挑戰(zhàn)與機(jī)遇》,全球大數(shù)據(jù)的研究和發(fā)展進(jìn)入了前所未有的高潮。 這本白皮書(shū)總結(jié)了各國(guó)政府如何利用大數(shù)據(jù)響應(yīng)社會(huì)需求,指導(dǎo)經(jīng)濟(jì)運(yùn)行,更好地為人民服務(wù),并建議成員國(guó)建立“脈搏實(shí)驗(yàn)室”(Pulse Labs),挖掘大數(shù)據(jù)

23、的潛在價(jià)值。由于大數(shù)據(jù)技術(shù)的特點(diǎn)和重要性,目前國(guó)內(nèi)外已經(jīng)出現(xiàn)了“數(shù)據(jù)科學(xué)”的概念,即數(shù)據(jù)處理技術(shù)將成為一個(gè)與計(jì)算科學(xué)并列的新的科學(xué)領(lǐng)域。已故著名圖 靈獎(jiǎng)獲得者Jim Gray在2007年的一次演講中提出,“數(shù)據(jù)密集型科學(xué)發(fā)現(xiàn)”(Data-Intensive Scientific Discovery)將成為科學(xué)研究的第四范式,科學(xué)研究將從實(shí)驗(yàn)科學(xué)、理論科學(xué)、計(jì)算科學(xué),發(fā)展到目前興起的數(shù)據(jù)科學(xué)。</p><p>  

24、為了緊跟全球大數(shù)據(jù)技術(shù)發(fā)展的浪潮,我國(guó)政府、學(xué)術(shù)界和工業(yè)界對(duì)大數(shù)據(jù)也予以了高度的關(guān)注。央視著名“對(duì)話”節(jié)目2013年4 月14日和21日邀請(qǐng)了《大數(shù)據(jù)時(shí)代——生活、工作與思維的大變革》作者維克托·邁爾-舍恩伯格,以及美國(guó)大數(shù)據(jù)存儲(chǔ)技術(shù)公司LSI總裁阿比分別做客“對(duì) 話”節(jié)目,做了兩期大數(shù)據(jù)專(zhuān)題談話節(jié)目“誰(shuí)在引爆大數(shù)據(jù)”、“誰(shuí)在掘金大數(shù)據(jù)”,國(guó)家央視媒體對(duì)大數(shù)據(jù)的關(guān)注和宣傳體現(xiàn)了大數(shù)據(jù)技術(shù)已經(jīng)成為國(guó)家和社會(huì)普 遍關(guān)注的焦點(diǎn)。而國(guó)

25、內(nèi)的學(xué)術(shù)界和工業(yè)界也都迅速行動(dòng),廣泛開(kāi)展大數(shù)據(jù)技術(shù)的研究和開(kāi)發(fā)。2013年以來(lái),國(guó)家自然科學(xué)基金、973計(jì)劃、核高基、863等重大 研究計(jì)劃都已經(jīng)把大數(shù)據(jù)研究列為重大的研究課題。為了推動(dòng)我國(guó)大數(shù)據(jù)技術(shù)的研究發(fā)展,2012年中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)發(fā)起組織了CCF大數(shù)據(jù)專(zhuān)家委員 會(huì),CCF專(zhuān)家委員會(huì)還特別成立了一個(gè)“大數(shù)據(jù)技術(shù)發(fā)展戰(zhàn)略報(bào)告”撰寫(xiě)組,并已撰寫(xiě)發(fā)布了《2013年中國(guó)大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)發(fā)展白皮書(shū)》。</p><

26、p>  大數(shù)據(jù)在帶來(lái)巨大技術(shù)挑戰(zhàn)的同時(shí),也帶來(lái)巨大的技術(shù)創(chuàng)新與商業(yè)機(jī)遇。不斷積累的大數(shù)據(jù)包含著很多在小數(shù)據(jù)量時(shí)不具備的深度知識(shí)和價(jià)值,大數(shù)據(jù)分析挖掘?qū)⒛転樾袠I(yè)/企業(yè)帶來(lái)巨大的商業(yè)價(jià)值,實(shí)現(xiàn)各種高附加值的增值服務(wù),進(jìn)一步提升行業(yè)/企業(yè)的經(jīng)濟(jì)效益和社會(huì)效益。由于大數(shù)據(jù)隱含著巨大的深度 價(jià)值,美國(guó)政府認(rèn)為大數(shù)據(jù)是“未來(lái)的新石油”,對(duì)未來(lái)的科技與經(jīng)濟(jì)發(fā)展將帶來(lái)深遠(yuǎn)影響。因此,在未來(lái),一個(gè)國(guó)家擁有數(shù)據(jù)的規(guī)模和運(yùn)用數(shù)據(jù)的能力將成為綜合 國(guó)力的

27、重要組成部分,對(duì)數(shù)據(jù)的占有、控制和運(yùn)用也將成為國(guó)家間和企業(yè)間新的爭(zhēng)奪焦點(diǎn)。</p><p>  大數(shù)據(jù)的研究和分析應(yīng)用具有十分重大的意義和價(jià)值。被譽(yù)為“大數(shù)據(jù)時(shí)代預(yù)言家”的維克托·邁爾-舍恩伯格在其《大數(shù)據(jù)時(shí)代》一書(shū)中列舉了大量詳 實(shí)的大數(shù)據(jù)應(yīng)用案例,并分析預(yù)測(cè)了大數(shù)據(jù)的發(fā)展現(xiàn)狀和未來(lái)趨勢(shì),提出了很多重要的觀點(diǎn)和發(fā)展思路。他認(rèn)為:“大數(shù)據(jù)開(kāi)啟了一次重大的時(shí)代轉(zhuǎn)型”,指出大數(shù) 據(jù)將帶來(lái)巨大的變革,改變我們

28、的生活、工作和思維方式,改變我們的商業(yè)模式,影響我們的經(jīng)濟(jì)、政治、科技和社會(huì)等各個(gè)層面。</p><p>  由于大數(shù)據(jù)行業(yè)應(yīng)用需求日益增長(zhǎng),未來(lái)越來(lái)越多的研究和應(yīng)用領(lǐng)域?qū)⑿枰褂么髷?shù)據(jù)并行計(jì)算技術(shù),大數(shù)據(jù)技術(shù)將滲透到每個(gè)涉及到大規(guī)模數(shù)據(jù)和復(fù)雜計(jì)算的應(yīng)用領(lǐng)域。不 僅如此,以大數(shù)據(jù)處理為中心的計(jì)算技術(shù)將對(duì)傳統(tǒng)計(jì)算技術(shù)產(chǎn)生革命性的影響,廣泛影響計(jì)算機(jī)體系結(jié)構(gòu)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、編譯技術(shù)、程序設(shè)計(jì)技術(shù)和方法、軟 件工程

29、技術(shù)、多媒體信息處理技術(shù)、人工智能以及其他計(jì)算機(jī)應(yīng)用技術(shù),并與傳統(tǒng)計(jì)算技術(shù)相互結(jié)合產(chǎn)生很多新的研究熱點(diǎn)和課題。</p><p>  大數(shù)據(jù)給傳統(tǒng)的計(jì)算技術(shù)帶來(lái)了很多新的挑戰(zhàn)。大數(shù)據(jù)使得很多在小數(shù)據(jù)集上有效的傳統(tǒng)的串行化算法在面對(duì)大數(shù)據(jù)處理時(shí)難以在可接受的時(shí)間內(nèi)完成計(jì) 算;同時(shí)大數(shù)據(jù)含有較多噪音、樣本稀疏、樣本不平衡等特點(diǎn)使得現(xiàn)有的很多機(jī)器學(xué)習(xí)算法有效性降低。因此,微軟全球副總裁陸奇博士在2012年全國(guó)第一屆 “中

30、國(guó)云/移動(dòng)互聯(lián)網(wǎng)創(chuàng)新大獎(jiǎng)賽”頒獎(jiǎng)大會(huì)主題報(bào)告中指出:“大數(shù)據(jù)使得絕大多數(shù)現(xiàn)有的串行化機(jī)器學(xué)習(xí)算法都需要重寫(xiě)”。</p><p>  大數(shù)據(jù)技術(shù)的發(fā)展將給我們研究計(jì)算機(jī)技術(shù)的專(zhuān)業(yè)人員帶來(lái)新的挑戰(zhàn)和機(jī)遇。目前,國(guó)內(nèi)外IT企業(yè)對(duì)大數(shù)據(jù)技術(shù)人才的需求正快速增長(zhǎng),未來(lái)5~10 年內(nèi)業(yè)界將需要大量的掌握大數(shù)據(jù)處理技術(shù)的人才。IDC研究報(bào)告指出,“下一個(gè)10年里,世界范圍的服務(wù)器數(shù)量將增長(zhǎng)10倍,而企業(yè)數(shù)據(jù)中心管理的數(shù)據(jù)信 息

31、將增長(zhǎng)50倍,企業(yè)數(shù)據(jù)中心需要處理的數(shù)據(jù)文件數(shù)量將至少增長(zhǎng)75倍,而世界范圍內(nèi)IT專(zhuān)業(yè)技術(shù)人才的數(shù)量?jī)H能增長(zhǎng)1.5倍?!币虼?,未來(lái)十年里大數(shù)據(jù) 處理和應(yīng)用需求與能提供的技術(shù)人才數(shù)量之間將存在一個(gè)巨大的差距。目前,由于國(guó)內(nèi)外高校開(kāi)展大數(shù)據(jù)技術(shù)人才培養(yǎng)的時(shí)間不長(zhǎng),技術(shù)市場(chǎng)上掌握大數(shù)據(jù)處理和應(yīng) 用開(kāi)發(fā)技術(shù)的人才十分短缺,因而這方面的技術(shù)人才十分搶手,供不應(yīng)求。國(guó)內(nèi)幾乎所有著名的IT企業(yè),如百度、騰訊、阿里巴巴和淘寶、奇虎360等,都大量需要大

32、數(shù)據(jù)技術(shù)人才。</p><p>  1.2 國(guó)內(nèi)外研究現(xiàn)狀與熱點(diǎn)</p><p>  二十年來(lái),全球大數(shù)據(jù)研究經(jīng)歷了一個(gè)從起步到活躍的過(guò)程。基于大數(shù)據(jù)相關(guān)的4573篇文獻(xiàn)和8571項(xiàng)專(zhuān)利,對(duì)其研究進(jìn)展、分布和前沿進(jìn)行分析,可以得出如下結(jié)論:1、美國(guó)是大數(shù)據(jù)研究的中心地帶,技術(shù)創(chuàng)新活躍,國(guó)際間合作頻繁。2、我國(guó)對(duì)大數(shù)據(jù)研究的資助力度較大,學(xué)術(shù)論文較多,但與國(guó)外創(chuàng)新合作較少。3、系統(tǒng)、性能和

33、算法是大數(shù)據(jù)研究的重點(diǎn)方向和核心基礎(chǔ)。4、大數(shù)據(jù)產(chǎn)業(yè)創(chuàng)新不僅聚焦軟件技術(shù)研發(fā),還在硬件技術(shù)上重點(diǎn)布局。</p><p>  1.2.1大數(shù)據(jù)研究文獻(xiàn)的國(guó)別和機(jī)構(gòu)分布</p><p>  1、美國(guó)是大數(shù)據(jù)研究的中心地帶,我國(guó)緊隨其后。美國(guó)是研究者最多的國(guó)家,約占總數(shù)的34%,中國(guó)緊隨其后,占23%,美中兩國(guó)合計(jì)占到總數(shù)的一半以上。其余的前10位國(guó)家包括:德國(guó)、英國(guó)、日本、印度、加拿大、法國(guó)、

34、澳大利亞和韓國(guó)。</p><p>  2、大數(shù)據(jù)研究文獻(xiàn)發(fā)展的“三階段”特征顯著。第一階段是1994-2001年,年均文獻(xiàn)不超過(guò)50篇,研究文獻(xiàn)主要為“美國(guó)籍”。第二階段為2002-2010年,年均文獻(xiàn)超過(guò)100篇,且以年均20%的幅度穩(wěn)步增長(zhǎng),突出特點(diǎn)是我國(guó)文獻(xiàn)開(kāi)始出現(xiàn),并在2008-2009年超過(guò)了美國(guó)。第三階段為2011-2013年,研究文獻(xiàn)出現(xiàn)爆發(fā)式增長(zhǎng),3年文獻(xiàn)共達(dá)到2053篇,占20年累計(jì)總數(shù)的44.

35、9%;主要原因是美國(guó)文獻(xiàn)的再次崛起,3年內(nèi)貢獻(xiàn)了735篇,而我國(guó)為489篇。</p><p>  3、我國(guó)政府對(duì)大數(shù)據(jù)研究的資助力度較大。文獻(xiàn)數(shù)前25位的研究機(jī)構(gòu)中,美國(guó)16所大學(xué)上榜,共發(fā)表論文559篇,占美國(guó)文獻(xiàn)總數(shù)的36.4%。中國(guó)則有6所大學(xué)機(jī)構(gòu)上榜,其中中科院發(fā)表論文數(shù)居世界第一,達(dá)到109篇,之后依次是清華大學(xué)、上海交通大學(xué)、哈爾濱工業(yè)大學(xué)、浙江大學(xué)和華中科技大學(xué)。6所大學(xué)機(jī)構(gòu)共計(jì)發(fā)表論文244

36、60;篇,約占我國(guó)大數(shù)據(jù)文獻(xiàn)總數(shù)的四分之一。</p><p>  從資助機(jī)構(gòu)上看,資助5以上的機(jī)構(gòu)一共有36家,大多為國(guó)家基金組織和政府部門(mén)。其中,中國(guó)國(guó)家自然科學(xué)基金、美國(guó)國(guó)家科學(xué)基金和國(guó)立衛(wèi)生研究院是三家資助發(fā)表文獻(xiàn)最多的機(jī)構(gòu),分別達(dá)到122篇、109篇和57篇。而企業(yè)更多聚焦專(zhuān)利領(lǐng)域進(jìn)行布局,僅有谷歌和微軟兩家公司資助的研究文獻(xiàn)超過(guò)5篇。</p><p>  我國(guó)大數(shù)據(jù)研究的質(zhì)量有待

37、進(jìn)一步提升。一方面,從合作關(guān)系上看,我國(guó)的大數(shù)據(jù)研究與世界聯(lián)系不多,僅與臺(tái)灣地區(qū)、德國(guó)有少量合作,而美國(guó)與韓國(guó)、澳大利亞、法國(guó)、瑞典、瑞士、土耳其等國(guó)家保持著密切的合作關(guān)系,德國(guó)、加拿大、英國(guó)之間也有不少合作。另一方面,從文獻(xiàn)被引頻次來(lái)看,研究文獻(xiàn)的質(zhì)量低于美國(guó),美國(guó)1537 篇論文平均引用次數(shù)達(dá)到14.20 次,高引用指數(shù)為66,而我國(guó)文獻(xiàn)的高引用指數(shù)僅有20。</p><p>  1.2.

38、2大數(shù)據(jù)研究的學(xué)科領(lǐng)域分布</p><p>  1、大數(shù)據(jù)研究開(kāi)始滲透進(jìn)入應(yīng)用領(lǐng)域。文獻(xiàn)涉及的學(xué)科領(lǐng)域超過(guò)100 個(gè)。在排名前15 位的學(xué)科領(lǐng)域中(圖5),除了數(shù)學(xué)、物理學(xué)等基礎(chǔ)學(xué)科外,更是出現(xiàn)了微生物學(xué)、環(huán)境生態(tài)學(xué)、運(yùn)籌學(xué)與管理科學(xué)等應(yīng)用學(xué)科,說(shuō)明大數(shù)據(jù)技術(shù)已經(jīng)滲透進(jìn)入各個(gè)基礎(chǔ)和應(yīng)用學(xué)科領(lǐng)域。</p><p>  2、系統(tǒng)、性能和算法是大數(shù)據(jù)研究的重點(diǎn)方向。從大數(shù)據(jù)涉

39、及的主要學(xué)科領(lǐng)域分布中可以看到,大量文獻(xiàn)集中在數(shù)據(jù)處理的系統(tǒng)、性能和算法上,如數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、主成分分析與分類(lèi)等方向位于核心層,其次為神經(jīng)網(wǎng)絡(luò)、降維運(yùn)算、數(shù)據(jù)存儲(chǔ)、關(guān)聯(lián)規(guī)則、數(shù)據(jù)集等。</p><p>  3、核心基礎(chǔ)技術(shù)文獻(xiàn)被大量引用。以谷歌公司的Mapreduce 為例,作為大數(shù)據(jù)的基礎(chǔ)技術(shù),該文獻(xiàn)后續(xù)被近700 篇論文所引用,切實(shí)推動(dòng)了分布式計(jì)算、Hadoop 等熱點(diǎn)研究的

40、開(kāi)展。</p><p>  1.2.3大數(shù)據(jù)產(chǎn)業(yè)技術(shù)創(chuàng)新的重點(diǎn)方向</p><p>  與學(xué)術(shù)文獻(xiàn)研究不同的是,從企業(yè)專(zhuān)利布局角度出發(fā),更有利于分析大數(shù)據(jù)產(chǎn)業(yè)技術(shù)創(chuàng)新的重點(diǎn)方向。為此,基于Orbit 專(zhuān)利數(shù)據(jù)庫(kù)和VOSviewer軟件,對(duì)14家國(guó)際性的IT企業(yè)、互聯(lián)網(wǎng)企業(yè)以及新興大數(shù)據(jù)企業(yè)自2006年以來(lái)的8571項(xiàng)專(zhuān)利進(jìn)行分析:</p><p>  1、

41、大數(shù)據(jù)軟件技術(shù)已趨于體系化。在數(shù)據(jù)的基本框架、采集傳輸、存儲(chǔ)、處理分析等各個(gè)環(huán)節(jié)上,都有不同于以往抽樣、封閉、小規(guī)模條件的新技術(shù)予以支撐,大數(shù)據(jù)軟件技術(shù)體系逐步趨于完整。在此基礎(chǔ)上,傳統(tǒng)的IT 企業(yè)、互聯(lián)網(wǎng)企業(yè)紛紛開(kāi)發(fā)了基于大數(shù)據(jù)的行業(yè)解決方案和商業(yè)應(yīng)用平臺(tái),一批新興大數(shù)據(jù)企業(yè)加快發(fā)展并進(jìn)行商業(yè)模式創(chuàng)新,產(chǎn)業(yè)創(chuàng)新生態(tài)系統(tǒng)所需的各項(xiàng)條件日趨完備。</p><p>  2、企業(yè)在大數(shù)據(jù)硬件技術(shù)上的布局不亞于

42、軟件。與學(xué)術(shù)研究側(cè)重于軟件技術(shù)不同,企業(yè)十分重視相關(guān)硬件設(shè)備的技術(shù)布局。一方面,按照國(guó)際專(zhuān)利進(jìn)行分類(lèi),數(shù)據(jù)處理、存儲(chǔ)和相關(guān)設(shè)備依然是專(zhuān)利較為集中的領(lǐng)域,如大數(shù)據(jù)專(zhuān)利數(shù)量較多的G06F-017、G06F-015、G06F-007、G06F-003、G06F-009、G06F-021 等分類(lèi)號(hào),均側(cè)重于計(jì)算機(jī)數(shù)據(jù)的處理、存儲(chǔ)、控制、接口、安全等硬件電路、設(shè)備和零部件。另一方面,8571 項(xiàng)專(zhuān)利集聚形成幾個(gè)較大的專(zhuān)利群,包

43、括采集顯示和傳輸、處理分析、記錄存儲(chǔ)、數(shù)據(jù)管理、共享與協(xié)作等,其中規(guī)模最大的專(zhuān)利群,依然是與采集、顯示和傳輸相關(guān)的外圍信息硬件設(shè)備。</p><p>  值得一提的是14家國(guó)際性企業(yè)大數(shù)據(jù)技術(shù)專(zhuān)利的一部分貢獻(xiàn)來(lái)自于其在華分公司。857項(xiàng)專(zhuān)利中,公開(kāi)國(guó)為中國(guó)的有1757項(xiàng),優(yōu)先權(quán)國(guó)在中國(guó)的有170項(xiàng),說(shuō)明了我國(guó)研究人員在大數(shù)據(jù)領(lǐng)域研究水平的不斷提升。</p><p>  1.3 論文主要研究

44、內(nèi)容</p><p>  本論文主要研究的基于大數(shù)據(jù)的結(jié)構(gòu)化查詢到MapReduce的轉(zhuǎn)化,在實(shí)際的應(yīng)用中對(duì)大數(shù)據(jù)的查詢經(jīng)常用到,所以了解和研究數(shù)據(jù)化的結(jié)構(gòu)化查詢?cè)趯?shí)際應(yīng)用中比較方便本文講述了,分布式存儲(chǔ)和分布式計(jì)算的基本原理和基本架構(gòu),從底層講述了map函數(shù)和reduce函數(shù)工作的基本過(guò)程,對(duì)數(shù)據(jù)的研究和挖掘非常簡(jiǎn)單。本文主要講述的是Hadoop對(duì)處理海量數(shù)據(jù)的處理過(guò)程,對(duì)海量數(shù)據(jù)的查詢轉(zhuǎn)換到MapReduce

45、的具體流程,以及海量數(shù)據(jù)在hdfs的具體存儲(chǔ)過(guò)程。主要研究的是結(jié)構(gòu)化查詢中的聚集查詢,聚集查詢?cè)诮Y(jié)構(gòu)化查詢中是經(jīng)常用到的查詢,在實(shí)際應(yīng)用中用到的也非常廣泛。</p><p>  1.3.1HDFS存儲(chǔ)數(shù)據(jù)概述</p><p>  Hadoop有一個(gè)稱(chēng)為HDFS的分布式系統(tǒng),全稱(chēng)為Hadoop Distributed Filesystem。HDFS是Hadoop的旗艦級(jí)文件系統(tǒng)。</p

46、><p>  HDFS以流式數(shù)據(jù)訪問(wèn)模式來(lái)存儲(chǔ)超大文件,運(yùn)行與商用硬件集群上。</p><p>  1)流式數(shù)據(jù)訪問(wèn):HDFS的構(gòu)建思路是"一次寫(xiě)入,多次讀取是最高效的訪問(wèn)模式"。讀取整個(gè)數(shù)據(jù)集的實(shí)驗(yàn)延遲比讀取第一條記錄的時(shí)間延遲要重要。 </p><p>  2)商用集群:Hadoop并不需要運(yùn)行在昂貴且高可靠的硬件上,普通的硬件便可以。</

47、p><p>  每個(gè)磁盤(pán)都有默認(rèn)的數(shù)據(jù)塊大小,這是磁盤(pán)進(jìn)行數(shù)據(jù)讀寫(xiě)的最小單位。HDFS也有塊的概念,但是大多數(shù),默認(rèn)為64MB。和單一磁盤(pán)的文件系統(tǒng)相似,HDFS上的文件也被劃分為塊大小的多個(gè)分塊,作為獨(dú)立的存儲(chǔ)單元。但和其它文件系統(tǒng)不同的是,HDFS中小于一個(gè)塊大小的文件不會(huì)占據(jù)整個(gè)塊空間。HDFS的塊設(shè)置的如此大的原因是為了最小化尋址開(kāi)銷(xiāo),但是塊也不能設(shè)置的太大,因?yàn)镸apReduce中的map通常一次處理一個(gè)塊

48、中的數(shù)據(jù),因此如果任務(wù)數(shù)太少(少于集群的節(jié)點(diǎn)數(shù)),會(huì)減慢任務(wù)執(zhí)行的速度。</p><p>  1.3.2 mapreduce基本原理介紹</p><p>  MapReduce正式發(fā)表是在2004年,是在超大集群上進(jìn)行高性能分布式計(jì)算的經(jīng)典算法。</p><p>  Map Reduce 執(zhí)行過(guò)程:</p><p>  1.Master 把輸

49、入文件分成M 份,通常16M – 64M每份</p><p>  2.Master選擇處于Idle狀態(tài)的worker,assign一份給他,此時(shí)worker的角色是map worker,assign的過(guò)程很簡(jiǎn)單,就</p><p>  是把這個(gè)task piece傳輸?shù)絯orker上</p><p>  3.Map worker拿到任務(wù)后讀取task的內(nèi)容,解析出k

50、ey/value pairs,這些中間結(jié)果開(kāi)始是存在worker的內(nèi)存里面,周</p><p>  期性的寫(xiě)到map worker的本地磁盤(pán)上。但是map worker產(chǎn)生的中間結(jié)果不是寫(xiě)在一個(gè)文件里,而是由partition </p><p>  function分割成R個(gè)中間文件,盡量把相同的keykey/value對(duì)寫(xiě)在一個(gè)中間文件里。</p><p>  4

51、.當(dāng)map完成task以后,會(huì)把這些partition文件在本地磁盤(pán)中的位置通知master。(只是通知位置,而不是傳輸文件</p><p>  到master,仔細(xì)想想為什么)</p><p>  5.Master接到任務(wù)完成的消息后,尋找idle狀態(tài)的worker,通知他去reduce,此時(shí)的worker就是reduce worker(值得</p><p>  

52、注意的是剛剛完成任務(wù)的 map worker可能會(huì)擔(dān)當(dāng)reduce worker的角色),reduce worker通過(guò)RPC讀取map worker</p><p>  磁盤(pán)上的中間文件到本地磁盤(pán),讀完之后,reduce worker對(duì)其進(jìn)行排序,如果中間文件太大,就要用外部排序。</p><p>  Master并不是隨便找一個(gè)worker來(lái)做reduce的,盡量讓一個(gè)reduce w

53、orker做包含同樣key的partition文件。</p><p>  比如:map work1 包含R個(gè)partition文件,key為K1,K2.。。。。。KR,master會(huì)把所有map works產(chǎn)生的partition文件含有K1的盡量交給同一個(gè)reduce worker,當(dāng)然這里面也有個(gè)負(fù)載平衡的問(wèn)題。</p><p>  6.Reduce work把合并后的結(jié)果寫(xiě)入一個(gè)文件

54、,因?yàn)橐粋€(gè)reduce worker盡量處理同一個(gè)key的partition文件,所以當(dāng)</p><p>  reduce worker合并完成之后,所有包含這個(gè)key的結(jié)果都在這個(gè)文件里了</p><p>  7.Reduce work把合并的結(jié)果傳回master</p><p>  8.當(dāng)所有的reduce workers都完成之后,master得到了R個(gè)結(jié)果文

55、件(每個(gè)reduce worker一個(gè)),喚醒用戶進(jìn)程,</p><p>  把R個(gè)結(jié)果文件交給客戶程序。</p><p><b>  優(yōu)化:</b></p><p><b>  1.合并函數(shù)</b></p><p>  Map往往會(huì)產(chǎn)生大量的key/value對(duì),比如1萬(wàn)個(gè){a,1},這些都要被r

56、educe來(lái)合并,可以在reduce工作之前有合并函數(shù)對(duì)map中的key/value對(duì)進(jìn)行合并??雌饋?lái),合并函數(shù)和reduce函數(shù)一樣,其實(shí)還是不同的,合并函數(shù)所合并的是map本地的key/value對(duì),產(chǎn)生的結(jié)果寫(xiě)入map的本地buffer;reduce函數(shù)合并的是來(lái)自不同map的partition文件,產(chǎn)生的結(jié)果傳回master。</p><p><b>  2.容錯(cuò)處理</b><

57、/p><p>  Cluster的龐大集群,機(jī)器出現(xiàn)故障是必然的,所以master要進(jìn)行容錯(cuò)處理。在master上會(huì)記錄所有集群內(nèi)或者子群內(nèi)worker的狀態(tài),定期的ping 正在工作的worker,如果不通,說(shuō)明這個(gè)worker死掉了,那么會(huì)把這個(gè)worker標(biāo)記為down,把他上面執(zhí)行的任務(wù)重新分配給另外的worker。但是如果master死掉了怎么辦?因?yàn)榧簝?nèi)只有一個(gè)master,此時(shí)只好通知客戶程序-計(jì)算失

58、敗。</p><p><b>  3.集群內(nèi)備份</b></p><p>  如果map worker完成了工作之后,reduce處理之前,map worker死掉了,那么reduce就拿不到結(jié)果了,難道要map重新執(zhí)行一遍嗎?不是的,map完成之后,要把他的結(jié)果向集群內(nèi)備份.</p><p>  分布式計(jì)算重點(diǎn)不是計(jì)算,而是分布式。云計(jì)算(C

59、loud Computing)歸根結(jié)底還是分布式計(jì)算,在客戶端看來(lái),他們只需一個(gè)簡(jiǎn)單的PC,能上網(wǎng)即可。但是在云服務(wù)提供商,為了存儲(chǔ)客戶的數(shù)據(jù),執(zhí)行客戶的計(jì)算,顯然是一個(gè)分布式的Cluster,也就是“云”。</p><p><b>  2 相關(guān)理論和技術(shù)</b></p><p>  2.1 MapReduce基本理論</p><p>  最近

60、幾年,不管是政府機(jī)構(gòu),還是企業(yè)都需要處理急劇增長(zhǎng)的數(shù)據(jù),為了在有限的時(shí)間內(nèi)完成對(duì)數(shù)據(jù)的處理,只依靠一臺(tái)計(jì)算機(jī)的計(jì)算能力是遠(yuǎn)遠(yuǎn)不夠的,需要將作業(yè)布置在數(shù)以千計(jì)的機(jī)器上執(zhí)行分布式并行計(jì)算。分布式計(jì)算需要考慮許多問(wèn)題,比如說(shuō)容錯(cuò)機(jī)制,這就使得本來(lái)并不復(fù)雜的問(wèn)題變得有些棘手,而MapReduce并行編程模型為這一問(wèn)題的解決提供給了一個(gè)很好的方案。</p><p>  2.1.1 MapReduce簡(jiǎn)介</p>

61、<p>  為了在分布式環(huán)境下進(jìn)行海量數(shù)據(jù)的計(jì)算,谷歌公司的Jeffery Dean等人提出了MapReduce這一并行編程模型[ls} o MapReduce通過(guò)將計(jì)算任務(wù)進(jìn)行分解,并且將分解的子任務(wù)布置在相連機(jī)器(節(jié)點(diǎn))的處理器上,然后按照特定的規(guī)則合并每個(gè)機(jī)器上的處理結(jié)果,得到最后的計(jì)算結(jié)果。這種處理方式與計(jì)算機(jī)算法中的動(dòng)態(tài)規(guī)劃相類(lèi)似。在MapReduce環(huán)境下,雖然單機(jī)處理能力都很有限,但是利用所有被連接的子節(jié)點(diǎn)進(jìn)

62、行計(jì)算卻具有超強(qiáng)的綜合處理能力。執(zhí)行MapReduce算法可以將一個(gè)大的任務(wù)自動(dòng)布置在集群上的每個(gè)空閑節(jié)點(diǎn)上,而無(wú)需人工干預(yù)。系統(tǒng)會(huì)自動(dòng)的解決數(shù)據(jù)分布問(wèn)題,處理機(jī)失效問(wèn)題以及機(jī)器之間如何進(jìn)行通信。這樣使用框架來(lái)運(yùn)行MapReduce算法,程序員可以在沒(méi)有分布式編程經(jīng)驗(yàn)的情況下,就可以進(jìn)行海量數(shù)據(jù)的并行計(jì)算。</p><p>  2.1.2 MapReduce實(shí)現(xiàn)框架</p><p>  根

63、據(jù)不同需要MapReduce接口可以變換執(zhí)行方法。有些方法適用于普通的微型計(jì)算機(jī),有些則適用于數(shù)以千計(jì)的處理器組成的大型復(fù)雜計(jì)算機(jī),甚至于有的適用于超大規(guī)模集群。谷歌的計(jì)算環(huán)境通常是利用網(wǎng)絡(luò)將大量的普通計(jì)算機(jī)連接起來(lái)所形成的具有極高性能的集群。</p><p>  MapReduce中每個(gè)節(jié)點(diǎn)都是一臺(tái)普通的機(jī)器,一般有工Intel的處理器,并安裝有開(kāi)源操作系統(tǒng),其內(nèi)存是2-4GB。使用千兆或者更低的百兆帶寬網(wǎng)絡(luò)將

64、普通機(jī)器連接起來(lái),而實(shí)際使用的網(wǎng)絡(luò)帶寬由數(shù)以千計(jì)的計(jì)算機(jī)組成的集群很容易發(fā)生機(jī)器故障,導(dǎo)致機(jī)器失效。為了將機(jī)器失效時(shí)的損失降到最低,在機(jī)器集群中采用冗余技術(shù),這樣即使在機(jī)器失效時(shí),也能保證系統(tǒng)的正常運(yùn)轉(zhuǎn)。而且值得一提的是由于機(jī)器上使用的都是低端硬盤(pán),采用冗余技術(shù)所需的成本并不高。當(dāng)用戶向系統(tǒng)提交作業(yè)時(shí),可以將這個(gè)作業(yè)劃分成一組作業(yè),布置在集群中的幾臺(tái)計(jì)算機(jī)上執(zhí)行。</p><p>  2.1.3 MapReduc

65、e編程模式</p><p>  MapReduce的執(zhí)行流程一般可分成兩個(gè)步驟:Map階段、Reduce階段。這兩個(gè)階段都以key/value對(duì)作為輸入,處理之后的輸出結(jié)果也都是key/value,而具體的數(shù)據(jù)結(jié)構(gòu)可以由用戶自己決定。Map與Reduce這兩個(gè)函數(shù)也都需要用戶自己編寫(xiě)。</p><p>  首先介紹一下Map函數(shù),該函數(shù)對(duì)key/value對(duì)操作的過(guò)程中也會(huì)生成key/va

66、lue對(duì)。Map會(huì)以key值作為參考,將有相同key值key/value對(duì)聚合起來(lái),并傳送到下一階段一Reduce階段作為輸入。Reduce函數(shù)也是由程序員編寫(xiě),它處理由Map函數(shù)傳送過(guò)來(lái)的key/value對(duì)集合。</p><p>  Reduce函數(shù)對(duì)key/value對(duì)集合進(jìn)行處理,最終生成更小的key/value對(duì)集合。一般來(lái)說(shuō),Reduce函數(shù)運(yùn)行一次生成的結(jié)果不會(huì)多于1個(gè)。Reduce函數(shù)利用迭代器獲

67、取中間值,這樣就可以對(duì)大量的數(shù)據(jù)進(jìn)行操作。假如在執(zhí)行過(guò)程中有不止一個(gè)Reduce函數(shù)存在,需要對(duì)Map函數(shù)的輸出結(jié)果進(jìn)行分塊,讓任意一個(gè)Reduce函數(shù)都能獲得一個(gè)分塊,用作執(zhí)行時(shí)的輸入。分塊中key/value對(duì)中的key值可能不一樣,然而要求同一key值的key/value對(duì)必須放在同一個(gè)分塊中。分塊函數(shù)可以由程序員自己實(shí)現(xiàn),也可以用框架下自帶的分塊工具。自帶工具利用哈希函數(shù)分塊,執(zhí)行效率也令人滿意。如果執(zhí)行過(guò)程中有不止一個(gè)Redu

68、ce函數(shù)存在,Map與Reduce階段所需傳送的數(shù)據(jù)被稱(chēng)作shuffle(洗牌),由于任意一個(gè)Reduce函數(shù)都需要Map函數(shù)傳遞過(guò)來(lái)的數(shù)據(jù),shuffle并不像看起來(lái)的那么簡(jiǎn)單。shuffle決定了數(shù)據(jù)如何在Reduce函數(shù)之間合理的分配,一旦做了變動(dòng)就會(huì)對(duì)系統(tǒng)的整體運(yùn)行重大影響。</p><p>  2.1.4 MapReduce控制節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)和容錯(cuò)機(jī)制</p><p>  為方便

69、主控程序Master的整體調(diào)度,每個(gè)任務(wù)都要存儲(chǔ)自己的狀態(tài)(閑置,執(zhí)行中或者己完成),同時(shí)也要能夠識(shí)別集群中的其它計(jì)算機(jī)的狀態(tài)。主控程序負(fù)責(zé)把Map計(jì)算機(jī)產(chǎn)生的中間數(shù)據(jù)信息傳輸至Reduce計(jì)算機(jī)上。具體過(guò)程如下:當(dāng)Map程序執(zhí)行時(shí),主控程序記錄了Map產(chǎn)生的R個(gè)分塊信息,包括所在位置及其分塊的大小,當(dāng)Map任務(wù)執(zhí)行完成后,會(huì)將狀態(tài)發(fā)送給主控程序,并且保存處理結(jié)果,然后將文件發(fā)送至Reduce工作機(jī)上。</p><p

70、>  MapReduce環(huán)境通常是將大量的計(jì)算機(jī)連接起來(lái)所形成的具有極高性能的集群,用以處理大規(guī)模數(shù)據(jù)。由于分布式環(huán)境存在高風(fēng)險(xiǎn),,必須要考慮一旦有機(jī)器出現(xiàn)故障,仍然要能使程序正常運(yùn)行,也就是所謂的容錯(cuò)處理機(jī)制。MapReduce的兩個(gè)階段中都需要考慮容錯(cuò)機(jī)制。例如:一臺(tái)機(jī)器在執(zhí)行程序時(shí)出現(xiàn)故障,Master就會(huì)將這個(gè)未完成的工作進(jìn)行重新分配,布置在其它空閑機(jī)器上。如果Map工作機(jī)己經(jīng)完成了部分工作,但是處理結(jié)果還未傳輸至Redu

71、ce工作機(jī)上,那么這個(gè)任務(wù)都需要重新分配實(shí)施。與此不同的是,如果故障發(fā)生在Reduce工作機(jī)上,那么己完成的部分工作不需要重新執(zhí)行,因?yàn)镽educe的中間結(jié)果不是存儲(chǔ)在本地硬盤(pán)中,而是保存在全局文件系統(tǒng)中。一般情況下有以下兩種故障需要考慮:</p><p>  1.工作節(jié)點(diǎn)發(fā)生失效情況</p><p>  主控程序Master會(huì)定時(shí)向每個(gè)工作機(jī)發(fā)送信息,檢查其是否連接正常,如果Master

72、在發(fā)送信息后的一定時(shí)間內(nèi)沒(méi)有收到該機(jī)器的回復(fù)信息,則判定該機(jī)器節(jié)點(diǎn)失效,則這臺(tái)計(jì)算機(jī)上執(zhí)行的任務(wù)都要被重新分配。</p><p>  當(dāng)工作機(jī)A在執(zhí)行完一個(gè)Map任務(wù)后失效,但是此時(shí)工作機(jī)B己經(jīng)將工作機(jī)A上的中間結(jié)果拷貝完畢,并且隨后發(fā)覺(jué)了這個(gè)狀況,那么B會(huì)向一切執(zhí)行Reduce程序的工作機(jī)發(fā)送消息,那些還未來(lái)得及從A上拷貝數(shù)據(jù)的工作機(jī)都從B上獲取數(shù)據(jù)。</p><p>  MapRedu

73、ce能夠最大限度的容忍工作機(jī)出現(xiàn)故障的意外發(fā)生。比如說(shuō),在網(wǎng)絡(luò)維護(hù)時(shí),一個(gè)采用MapReduce環(huán)境的集群中,可能會(huì)發(fā)生十幾臺(tái)甚至于幾十臺(tái)計(jì)算機(jī)在一段時(shí)間內(nèi)同時(shí)失效的情況,主控程序只需進(jìn)行簡(jiǎn)單的調(diào)控分配,就可以順利的完成既定工作,最復(fù)雜的情況也就是將不能訪問(wèn)的工作機(jī)上的任務(wù)再執(zhí)行一次。</p><p>  2.主控節(jié)點(diǎn)出現(xiàn)失效故障</p><p>  主控節(jié)點(diǎn)會(huì)定時(shí)保存其狀態(tài)信息,設(shè)定一個(gè)

74、核查點(diǎn)(checkpoint)。假如主控節(jié)點(diǎn)出現(xiàn)故障,可以從最后一個(gè)核查點(diǎn)處激活另外的主控程序。不過(guò),由于整個(gè)集群中只存在一個(gè)主控節(jié)點(diǎn),如果出現(xiàn)故障,帶來(lái)的麻煩要遠(yuǎn)比工作節(jié)點(diǎn)出現(xiàn)故障多。當(dāng)前應(yīng)付主控節(jié)點(diǎn)失效的主要方法是如果Master失效,立即停止MapReduce任務(wù)的執(zhí)行。客戶端發(fā)現(xiàn)這種狀況,可以再次嘗試MapReduce任務(wù)。</p><p>  2.1.5 MapReduce的作業(yè)調(diào)度機(jī)制</p&g

75、t;<p>  主控節(jié)點(diǎn)在MapReduce的作業(yè)調(diào)度中起著至關(guān)重要的作用,它負(fù)責(zé)整體的作業(yè)調(diào)度和資源分配。MapReduce采用一種稱(chēng)為主動(dòng)請(qǐng)求式的調(diào)度機(jī)制,當(dāng)一個(gè)工作節(jié)點(diǎn)完成一項(xiàng)任務(wù)后,會(huì)主動(dòng)向主控節(jié)點(diǎn)提出請(qǐng)求,然后主控節(jié)點(diǎn)會(huì)為其分配新的任務(wù)。與操作系統(tǒng)中的處理機(jī)調(diào)度算法類(lèi)似,MapReduce中的調(diào)度算法如下:</p><p>  C1)先來(lái)先服務(wù):MapReduce的自身調(diào)度算法是先來(lái)先服務(wù)

76、,這種算法實(shí)施起來(lái)簡(jiǎn)單容易,但是存在很大的局限性,它沒(méi)有考慮任務(wù)之間的需求差異。</p><p>  C2)公平算法:公平算法的設(shè)計(jì)思想是確保每個(gè)任務(wù)都能相對(duì)公平的獲得等量資源。當(dāng)整個(gè)集群中只存在唯一的任務(wù)時(shí),則其將占用整個(gè)系統(tǒng)中的所有資源。如果此時(shí)又新提交一個(gè)任務(wù),則將會(huì)有部分資源被釋放,用于分配給新增的任務(wù)。這既能保證減少作業(yè)的平均等待時(shí)間,提高系統(tǒng)吞吐量,又能有效保證長(zhǎng)作業(yè)的效率。</p>&

77、lt;p>  (3)高優(yōu)先權(quán)優(yōu)先算法:使用這種調(diào)度算法的MapReduce環(huán)境會(huì)首先考慮將優(yōu)先級(jí)高的作業(yè)分配給空閑工作機(jī)運(yùn)行。這種調(diào)度算法的主要問(wèn)題是采用何種優(yōu)先權(quán),是靜態(tài)的,抑或是動(dòng)態(tài)的,以及作業(yè)的優(yōu)先權(quán)如何計(jì)算。</p><p>  (4)計(jì)算能力調(diào)度算法:此種調(diào)度策略定義數(shù)個(gè)作業(yè)隊(duì)列,與公平算法相類(lèi)似,這種算法試圖在對(duì)隊(duì)列之間保證公平分配資源。這種算法的關(guān)鍵是需要計(jì)算出運(yùn)行各個(gè)作業(yè)隊(duì)列所需的資源。&l

78、t;/p><p>  MapReduce并行編程模型的提出為大規(guī)模數(shù)據(jù)的計(jì)算提供一種有效方法。但是有些特殊情況難以利用MapReduce來(lái)處理。MapReduce所能處理的復(fù)雜問(wèn)題必須能夠劃分為一些等價(jià)的子問(wèn)題,而這些子問(wèn)題之間沒(méi)有相互的依賴(lài)關(guān)系,可以同時(shí)運(yùn)行。也就是說(shuō)能夠使用MapReduce解決的問(wèn)題必須具有三大特點(diǎn):原任務(wù)可以分解;分解后的任務(wù)數(shù)量是有限的;子任務(wù)之間沒(méi)有相關(guān)性,能夠并行執(zhí)行,對(duì)各個(gè)子任務(wù)的推進(jìn)

79、順序沒(méi)有要求。</p><p>  2.2 數(shù)據(jù)的結(jié)構(gòu)化查詢</p><p>  結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱(chēng)SQL,是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。</p><p>  結(jié)構(gòu)化查詢語(yǔ)言是高級(jí)的非過(guò)程化編程語(yǔ)言,允許用

80、戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng), 可以使用相同的結(jié)構(gòu)化查詢語(yǔ)言作為數(shù)據(jù)輸入與管理的接口。結(jié)構(gòu)化查詢語(yǔ)言語(yǔ)句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能</p><p>  2.3 hadoop的hdfs存儲(chǔ)</p><p>  Hadoop有一個(gè)稱(chēng)為HDFS的分布式系統(tǒng),全稱(chēng)為Hadoo

81、p Distributed Filesystem。HDFS是Hadoop的旗艦級(jí)文件系統(tǒng)。</p><p>  HDFS以流式數(shù)據(jù)訪問(wèn)模式來(lái)存儲(chǔ)超大文件,運(yùn)行與商用硬件集群上。</p><p>  1)流式數(shù)據(jù)訪問(wèn):HDFS的構(gòu)建思路是"一次寫(xiě)入,多次讀取是最高效的訪問(wèn)模式"。讀取整個(gè)數(shù)據(jù)集的實(shí)驗(yàn)延遲比讀取第一條記錄的時(shí)間延遲要重要。 </p><p

82、>  2)商用集群:Hadoop并不需要運(yùn)行在昂貴且高可靠的硬件上,普通的硬件便可以。</p><p><b>  數(shù)據(jù)塊</b></p><p>  每個(gè)磁盤(pán)都有默認(rèn)的數(shù)據(jù)塊大小,這是磁盤(pán)進(jìn)行數(shù)據(jù)讀寫(xiě)的最小單位。HDFS也有塊的概念,但是大多數(shù),默認(rèn)為64MB。和單一磁盤(pán)的文件系統(tǒng)相似,HDFS上的文件也被劃分為塊大小的多個(gè)分塊,作為獨(dú)立的存儲(chǔ)單元。但和其它文

83、件系統(tǒng)不同的是,HDFS中小于一個(gè)塊大小的文件不會(huì)占據(jù)整個(gè)塊空間。</p><p>  HDFS的塊設(shè)置的如此大的原因是為了最小化尋址開(kāi)銷(xiāo),但是塊也不能設(shè)置的太大,因?yàn)镸apReduce中的map通常一次處理一個(gè)塊中的數(shù)據(jù),因此如果任務(wù)數(shù)太少(少于集群的節(jié)點(diǎn)數(shù)),會(huì)減慢任務(wù)執(zhí)行的速度。</p><p>  3 結(jié)構(gòu)化查詢到mapreduce轉(zhuǎn)化</p><p>  

84、3.1實(shí)驗(yàn)平臺(tái)的搭建</p><p>  3.1.1 三種環(huán)境介紹</p><p>  啟動(dòng)Hadoop支持三種模式操作,分別是單機(jī)模式操作、偽分布模式操作和全分布模式操作。</p><p>  單機(jī)模式操作是Hadoop的默認(rèn)操作模式,當(dāng)首次解壓Hadoop的源碼包時(shí),Hadoop無(wú)法了解硬件安裝環(huán)境,會(huì)保守地選擇最小配置,即單機(jī)模式。該模式主要用于開(kāi)發(fā)調(diào)試Map

85、Reduce程序的應(yīng)用邏輯,而不會(huì)和守護(hù)進(jìn)程交互,避免增加額外的復(fù)雜性。</p><p>  偽分布模式操作是指在“單節(jié)點(diǎn)集群”上運(yùn)行Hadoop,其中所有的守護(hù)進(jìn)程都運(yùn)行在同一臺(tái)機(jī)器上。該模式在單機(jī)模式操作之上多了代碼調(diào)試功能,可以查閱內(nèi)存的使用情況、HDFS的輸入輸出以及守護(hù)進(jìn)程之間的交互。</p><p>  全分布模式操作是指一種實(shí)際意義上的Hadoop集群,其規(guī)??蓮膸讉€(gè)節(jié)點(diǎn)的小

86、集群到成百上千個(gè)節(jié)點(diǎn)的大集群,甚至是成千上萬(wàn)的超大集群。</p><p>  單機(jī)模式操作和偽分布模式操作均用于開(kāi)發(fā)與調(diào)試的目的。真實(shí)的Hadoop 集群是全分布模式操作。</p><p>  3.1.2偽分布環(huán)境搭建:</p><p>  1、宿主機(jī)(Windows)與客戶機(jī)(安裝在虛擬機(jī)中的Linux)網(wǎng)絡(luò)連接。</p><p>  a)

87、 Host-only 宿主機(jī)與客戶機(jī)單獨(dú)組網(wǎng);</p><p><b>  好處:網(wǎng)絡(luò)隔離;</b></p><p>  壞處:虛擬機(jī)和其他服務(wù)器之間不能通訊;</p><p>  b) Bridge 橋接 宿主機(jī)與客戶機(jī)在同一個(gè)局域網(wǎng)中。</p><p>  好處:竇在同一個(gè)局域網(wǎng),可以互相訪問(wèn);</p>

88、<p><b>  壞處:不完全。</b></p><p>  2、Hadoop的為分布式安裝步驟</p><p><b>  a) 設(shè)置靜態(tài)IP</b></p><p>  在centos下左面上右上角圖標(biāo)右鍵修改;</p><p>  重啟網(wǎng)卡service network rest

89、art;</p><p>  驗(yàn)證:執(zhí)行命令ifconfig</p><p>  b) 修改主機(jī)名(原名稱(chēng)casichadoop) hostname查看當(dāng)前名稱(chēng)</p><p>  修改當(dāng)前會(huì)話主機(jī)名:設(shè)置名稱(chēng) hostname hadoop</p><p>  修改配置文件中:hostname vi /etc/sysconfig/netw

90、ork 為hadoop</p><p>  c) 把hostname和ip綁定</p><p>  執(zhí)行命令 vi /etc/hosts增加10.10.10.10</p><p><b>  保存退出</b></p><p>  驗(yàn)證:ping hadoop</p><p>  d) 關(guān)閉防火墻

91、 先查看service iptables status</p><p>  Service iptables stop</p><p>  e) 防火墻自動(dòng)啟動(dòng) 先查看chkconfig --list | grep iptables</p><p>  關(guān)閉自動(dòng)啟動(dòng)防火墻 chkconfig iptables off</p><p>  驗(yàn)

92、證:chkconfig --list | grep iptables</p><p>  f) Ssh(secure shell)的免密碼登錄</p><p>  <1>執(zhí)行命令shh-keygen -t rsa 產(chǎn)生秘鑰,位于~/.ssh</p><p>  <2>執(zhí)行命令cp ~/.ssh/id_rsa.pub ~/.ssh/autho

93、rized_keys</p><p>  驗(yàn)證:ssh localhost</p><p>  g) 安裝JDK </p><p>  l 打開(kāi)目錄 cd /usr/local </p><p>  l 然后刪除全部文件rm -rf * </p><p>  l 復(fù)制所有的文件到當(dāng)前目錄下cp /root/

94、Downloads/* .</p><p>  l 查看當(dāng)前目錄的權(quán)限 ls -l</p><p>  l 賦予權(quán)限執(zhí)行權(quán)限chmod u+x jdk-6u24-linux-i586.bin</p><p>  l 執(zhí)行安裝JDK ./jdk-6u24-linux-i586.bin </p><p>  l mv jdk1.6.0_24

95、jdk 重命名</p><p>  l 設(shè)置環(huán)境變量vi /etc/profile </p><p>  n Export JAVA_HOME=/usr/local/jdk</p><p>  n Export PATH=./$JAVA_HOME/bin:$PATH</p><p>  n Source /etc/profile</p&

96、gt;<p>  n 驗(yàn)證:java -version</p><p>  h) 安裝HADOOP</p><p>  i. Tar -zxvf hadoop-1.1.2.tar.zip</p><p>  ii. Mv hadoop-1.1.2 hadoop</p><p>  iii. 設(shè)置環(huán)境變量</p&g

97、t;<p>  n Export HADOOP_HOME=/usr/local/hadoop</p><p>  n Export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH</p><p>  iv. 修改四個(gè)配置文件</p><p>  1. 修改hadoop-env.sh</p>&l

98、t;p>  export JAVA_HOME=/usr/local/jdk</p><p>  修改core-site.xml</p><p>  修改hdfs-site.xml</p><p>  修改mapred-site.xml</p><p>  v. 執(zhí)行命令 hadoop namenoe

99、0;-format 對(duì)hdfs格式化</p><p>  vi. 執(zhí)行命令 start-all.sh</p><p>  vii. 執(zhí)行命令 jps 查看進(jìn)程</p><p>  Mapreduce的管理界面:</p><p>  Hdfs的管理界面:</p><

100、p>  3.2結(jié)構(gòu)化聚集查詢分析</p><p>  本次畢設(shè)的聚集查詢到mapreduce的轉(zhuǎn)換分成以下幾個(gè)步驟:</p><p>  接收輸入的sql(結(jié)構(gòu)化查詢命令)</p><p><b>  解析sql</b></p><p>  將解析的sql命令找到對(duì)應(yīng)到具體的聚集函數(shù)的mapreduce</p

101、><p><b>  進(jìn)行map過(guò)程</b></p><p>  進(jìn)行reduce過(guò)程</p><p><b>  輸出結(jié)果</b></p><p>  具體的流程圖如下圖所示:</p><p>  3.3分布式存儲(chǔ)和分布式計(jì)算介紹</p><p>  分

102、布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用集中的存儲(chǔ)服務(wù)器存放所有數(shù)據(jù),存儲(chǔ)服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點(diǎn),不能滿足大規(guī)模存儲(chǔ)應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。</p><p>  分布式架構(gòu)的基本框架圖為:</p>

103、<p>  如圖所示,Namenode和datanode用來(lái)存儲(chǔ)數(shù)據(jù),一個(gè)大數(shù)據(jù)文件通過(guò)map分成許多塊(block)文件,namenode通過(guò)一定的算法將這些塊分件映射到各個(gè)datanode上,為了數(shù)據(jù)的安全性,每個(gè)block文件可能存儲(chǔ)多個(gè)備份,這就是簡(jiǎn)單的hdfs的存儲(chǔ)過(guò)程。</p><p>  客戶端(client)將job通過(guò)job tracker傳給分布式系統(tǒng),job tracker將任務(wù)調(diào)

104、度分配到各個(gè)task tracker,tash tracker通過(guò)心跳從name node查找datanode找到要操作的block文件進(jìn)行操作,進(jìn)行mapreduce操作,簡(jiǎn)而言之,mapreduce的過(guò)程就是分而治之的思想</p><p>  4 實(shí)驗(yàn)驗(yàn)證與程序的運(yùn)行結(jié)果</p><p>  4.1單機(jī)環(huán)境運(yùn)行結(jié)果</p><p>  單機(jī)環(huán)境的運(yùn)行就是本地調(diào)試

105、的過(guò)程,因?yàn)閱螜C(jī)的運(yùn)行根本沒(méi)有涉及到分布式的概念,只是最簡(jiǎn)單的mapreduce的過(guò)程,將大數(shù)據(jù)文件轉(zhuǎn)換成小數(shù)據(jù)文件,讓后分而治之,最后將結(jié)果合并。流程如圖所示:</p><p>  調(diào)試結(jié)果和配置的運(yùn)行參數(shù)為:</p><p><b>  如圖紅線所示:</b></p><p>  Runjar是運(yùn)行jar的hadoop命令</p>

106、;<p>  第二個(gè)是設(shè)置自己程序打成的jar包,設(shè)置輸入輸出路徑</p><p>  運(yùn)行190M的大數(shù)據(jù)文件控制臺(tái)的輸出所示:</p><p>  聚集查詢你求和和求最小值的結(jié)果輸出:</p><p>  4.2偽分布式環(huán)境的運(yùn)行結(jié)果</p><p>  4.2.1 大數(shù)據(jù)文件上傳的分布式環(huán)境存儲(chǔ)系統(tǒng)(hdfs)</p

107、><p>  在hdfs系統(tǒng)的目錄/user/panther/下創(chuàng)建目錄in</p><p>  Hadoop fs -mkdir in</p><p><b>  如圖所示:</b></p><p>  將數(shù)據(jù)文件上傳到hdfs的目錄in下:</p><p>  通過(guò)hdfs的管理界面按查看上傳的文

108、件</p><p>  4.2.2 在偽分布環(huán)境下運(yùn)行mapreduce程序</p><p>  將自己所寫(xiě)的程序通過(guò)maven打成jar,在hadoop的環(huán)境下運(yùn)行:</p><p>  此時(shí)觀察mapreduce的管理界面就會(huì)發(fā)現(xiàn)已經(jīng)有任務(wù)在運(yùn)行:</p><p>  上面紅線顯示job的進(jìn)程,從第二幅圖可以看出mapreduce的過(guò)程以

109、及中間過(guò)程產(chǎn)生的一些結(jié)果。</p><p>  由上面的統(tǒng)計(jì)圖可以看出在進(jìn)行map的過(guò)程中,已經(jīng)把中間結(jié)果copy到reduce過(guò)程,</p><p>  在map過(guò)程完全結(jié)束后,再進(jìn)行sort過(guò)程,最后進(jìn)行reduce過(guò)程??!</p><p>  由于數(shù)據(jù)量比較大所以需要運(yùn)行一段時(shí)間,一段時(shí)間后,輸出結(jié)果:</p><p><b>

110、;  5 實(shí)驗(yàn)結(jié)果分析</b></p><p>  通過(guò)改變文件塊的大小來(lái)查看map過(guò)程和reduce過(guò)程所用的時(shí)間,做了一個(gè)簡(jiǎn)單的統(tǒng)計(jì)圖,如下圖所示</p><p>  上圖所示,在同一個(gè)需統(tǒng)計(jì)的數(shù)據(jù)文件,分別統(tǒng)計(jì)max,min,sum,avg函數(shù)在hdfs設(shè)定的塊大小為8M,64M,256M的時(shí)候統(tǒng)計(jì)map過(guò)程和recude過(guò)程所需要的時(shí)間,從圖中可以簡(jiǎn)單的看出,當(dāng)hdfs

111、的數(shù)據(jù)塊越大,map的個(gè)數(shù)就越少,反之,map的個(gè)數(shù)越多,但是并不是map個(gè)數(shù)越多,效率越高。</p><p><b>  6 重要代碼分析</b></p><p>  一次結(jié)構(gòu)化查詢都是圍繞一次mapreduce過(guò)程來(lái)計(jì)算的,下面就是min的主要map過(guò)程和reduce過(guò)程:</p><p>  public static class Min

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論