《大數(shù)據(jù)技術(shù)基礎(chǔ)》全套教學(xué)課件_第1頁
《大數(shù)據(jù)技術(shù)基礎(chǔ)》全套教學(xué)課件_第2頁
《大數(shù)據(jù)技術(shù)基礎(chǔ)》全套教學(xué)課件_第3頁
《大數(shù)據(jù)技術(shù)基礎(chǔ)》全套教學(xué)課件_第4頁
《大數(shù)據(jù)技術(shù)基礎(chǔ)》全套教學(xué)課件_第5頁
已閱讀5頁,還剩635頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章緒論第1章-緒論第2章-大數(shù)據(jù)處理架構(gòu)Hadoop第3章-分布式文件系統(tǒng)HDFS第4章-分布式計(jì)算框架MapReduce第5章-Hadoop架構(gòu)的優(yōu)化與發(fā)展第6章-分布式數(shù)據(jù)庫HBasex第7章-數(shù)據(jù)倉庫Hivex第8章-Spark的設(shè)計(jì)與運(yùn)行原理x第9章-Spark核心編程x第10章-Spark生態(tài)系統(tǒng)x第11章-流式數(shù)據(jù)處理引擎Flinkx全套可編輯PPT課件1.1大數(shù)據(jù)發(fā)展背景1.2大數(shù)據(jù)基本概念與特點(diǎn)1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.4大數(shù)據(jù)處理系統(tǒng)框架1.5大數(shù)據(jù)應(yīng)用提綱1.1大數(shù)據(jù)發(fā)展背景1)第三次信息化浪潮根據(jù)IBM前首席執(zhí)行官郭士納的觀點(diǎn),IT領(lǐng)域每隔十五年就會迎來一次重大變革信息化浪潮發(fā)生時間標(biāo)志解決問題代表企業(yè)第一次浪潮1980年前后個人計(jì)算機(jī)信息處理Intel、AMD、IBM、蘋果、微軟、聯(lián)想、戴爾、惠普等第二次浪潮1995年前后互聯(lián)網(wǎng)信息傳輸雅虎、谷歌、阿里巴巴、百度、騰訊等第三次浪潮2010年前后物聯(lián)網(wǎng)、云計(jì)算和大數(shù)據(jù)信息爆炸將涌現(xiàn)出一批新的市場標(biāo)桿企業(yè)表1三次信息化浪潮2)信息科技為大數(shù)據(jù)時代提供技術(shù)支撐圖1-1存儲介質(zhì)隨時間變化情況1.存儲設(shè)備容量不斷增加來自斯威本科技大學(xué)(SwinburneUniversityofTechnology)的研究團(tuán)隊(duì),在2013年6月29日刊出的《自然通訊(NatureCommunications)》雜志的文章中,描述了一種全新的數(shù)據(jù)存儲方式,可將1PB(1024TB)的數(shù)據(jù)存儲到一張僅DVD大小的聚合物碟片上。2)信息科技為大數(shù)據(jù)時代提供技術(shù)支撐圖CPU晶體管數(shù)目隨時間變化情況2.CPU處理能力大幅提升

2)信息科技為大數(shù)據(jù)時代提供技術(shù)支撐圖

網(wǎng)絡(luò)帶寬隨時間變化情況3.網(wǎng)絡(luò)帶寬不斷增加2)信息科技為大數(shù)據(jù)時代提供技術(shù)支撐3)數(shù)據(jù)產(chǎn)生方式的變革促成大數(shù)據(jù)時代的來臨圖

數(shù)據(jù)產(chǎn)生方式的變革4)大數(shù)據(jù)發(fā)展歷程1.2大數(shù)據(jù)基本概念與特點(diǎn)1.2.1大數(shù)據(jù)基本概念

1)大數(shù)據(jù)的定義

麥肯錫在2011年發(fā)布的報(bào)告《大數(shù)據(jù):下一個創(chuàng)新、競爭和生產(chǎn)力的前沿》中對大數(shù)據(jù)的定義進(jìn)行解釋,大數(shù)據(jù)是指其大小超出了典型數(shù)據(jù)庫軟件的采集、存儲、管理和分析能力的數(shù)據(jù)集。根據(jù)IDC作出的估測,數(shù)據(jù)一直都在以每年50%的速度增長,也就是說每兩年就增長一倍(大數(shù)據(jù)摩爾定律)人類在最近兩年產(chǎn)生的數(shù)據(jù)量相當(dāng)于之前產(chǎn)生的全部數(shù)據(jù)量到2020年,全球?qū)⒖偣矒碛?5ZB的數(shù)據(jù)量,相較于2010年,數(shù)據(jù)量將增長近30倍1.2大數(shù)據(jù)基本概念與特點(diǎn)2)大數(shù)據(jù)的來源從數(shù)據(jù)的生成到消耗,時間窗口非常小,可用于生成決策的時間非常少1秒定律:這一點(diǎn)也是和傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)有著本質(zhì)的不同1.2大數(shù)據(jù)基本概念與特點(diǎn)2)大數(shù)據(jù)的來源大數(shù)據(jù)是由結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)組成的10%的結(jié)構(gòu)化數(shù)據(jù),存儲在數(shù)據(jù)庫中90%的非結(jié)構(gòu)化數(shù)據(jù),它們與人類信息密切相關(guān)科學(xué)研究–基因組–LHC加速器–地球與空間探測企業(yè)應(yīng)用–Email、文檔、文件–應(yīng)用日志–交易記錄Web1.0數(shù)據(jù)–文本–圖像–視頻Web2.0數(shù)據(jù)–查詢?nèi)罩?點(diǎn)擊流–Twitter/Blog/SNS–Wiki1.2大數(shù)據(jù)基本概念與特點(diǎn)3)大數(shù)據(jù)的類型1.2大數(shù)據(jù)基本概念與特點(diǎn)1.2.2大數(shù)據(jù)的特點(diǎn)

價值密度低,商業(yè)價值高

以視頻為例,連續(xù)不間斷監(jiān)控過程中,可能有用的數(shù)據(jù)僅僅有一兩秒,但是具有很高的商業(yè)價值1.2大數(shù)據(jù)基本概念與特點(diǎn)1.2.2大數(shù)據(jù)的特點(diǎn)1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.1數(shù)據(jù)采集

數(shù)據(jù)采集是將分布的異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)抽取(Extract)到臨時的中間層后進(jìn)行清洗、轉(zhuǎn)換(Transform),最后加載(Load)到數(shù)據(jù)倉庫或者數(shù)據(jù)集市中。這里提到的三個詞:抽取、轉(zhuǎn)換、加載,是人們常說的數(shù)據(jù)的“ETL”。把這三個步驟放在數(shù)據(jù)采集里,說明數(shù)據(jù)采集它不僅僅只是收集數(shù)據(jù),還有數(shù)據(jù)的清洗。

每個系統(tǒng)數(shù)據(jù)并不是完美的,沒有瑕疵的。因?yàn)閿?shù)據(jù)是由程序產(chǎn)生的,而程序是由程序員開發(fā)的,程序員開發(fā)的東西基本上都是會有瑕疵。因此,在將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)倉庫之前,需要將異常有問題的數(shù)據(jù)剔除掉。圖1-2.企業(yè)信息系統(tǒng)

數(shù)據(jù)采集需要注意的問題:首先就是正確性。大數(shù)據(jù)其中的一個特征是真實(shí)性,數(shù)據(jù)一定是來自于真實(shí)的業(yè)務(wù)系統(tǒng),它的值和描述一定和真實(shí)的業(yè)務(wù)系統(tǒng)保持一致,這是數(shù)據(jù)分析的前提。從數(shù)據(jù)源采集過來的數(shù)據(jù)可能有些值有問題,比如交易金額小于零或者是電話號碼位數(shù)不正常。這些違反常識的數(shù)據(jù),有必要驗(yàn)證數(shù)據(jù)的正確性。對不正確的數(shù)據(jù)采取相應(yīng)的處理措施,比如刪除或者是使用默認(rèn)值進(jìn)行填充,還是直接使用空值,需要根據(jù)實(shí)際的情況進(jìn)行判斷。第二是完整性。完整性指兩個方面,一方面是指每一條數(shù)據(jù)的完整性,比如一條交易記錄,它應(yīng)該是有買方,也有賣方。這類似于數(shù)據(jù)庫里面使用外界關(guān)系來保證數(shù)據(jù)的完整性。另一方面指的是整個數(shù)據(jù)的完整性,數(shù)據(jù)采集的過程中不能有任何的信息損失。比如要查看一個學(xué)校的成績情況,如果只是統(tǒng)計(jì)部分班級的成績,毫無疑問這并不能夠反映出整個學(xué)校的情況,因?yàn)橛锌赡苤皇侨×瞬糠趾玫陌嗉墸幸恍┹^差的班級的數(shù)據(jù)被遺漏了,這樣統(tǒng)計(jì)出來的結(jié)果肯定是有失偏頗的。第三是一致性。一致性指的是數(shù)據(jù)的值和描述在整個數(shù)據(jù)倉庫中應(yīng)該是保持一致的,比如有個系統(tǒng),它有個數(shù)據(jù)集里面性別字段,它用0表示女性,1表示男性。而在另外一個系統(tǒng)里面,是用1表示女性用0表示男性。這時候就需要將數(shù)據(jù)的表示意義進(jìn)行統(tǒng)一。數(shù)據(jù)的不一致性,往往是因?yàn)椴煌到y(tǒng)之間的數(shù)據(jù)模型不一致造成的。因?yàn)椴灰粯拥南到y(tǒng)往往是有不一樣的人進(jìn)行設(shè)計(jì)的。他們對數(shù)據(jù)模型的定義可能會不一樣。這是數(shù)據(jù)采集中需要注意的問題,它的目的就是為了保證數(shù)據(jù)的質(zhì)量。1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.1數(shù)據(jù)采集1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.2數(shù)據(jù)存儲與管理

一般的數(shù)據(jù)存儲的介質(zhì)有:關(guān)系型數(shù)據(jù)庫和磁盤,這也是傳統(tǒng)業(yè)務(wù)系統(tǒng)中最常用的存儲介質(zhì)。

大數(shù)據(jù)場景下,數(shù)據(jù)達(dá)到了拍字節(jié)或千萬億字節(jié)(PB)級,甚至超過了PB級數(shù)據(jù)。那該如何存儲呢?首先看看海量數(shù)據(jù)存儲需要考慮哪些因素。第一個是容量的問題,采用將數(shù)據(jù)分塊來存儲,也就是分布式存儲的思想。第二個要考慮的問題就是成本,可以把數(shù)據(jù)存儲在廉價的機(jī)器上。第三個要考慮的問題是擴(kuò)容的問題,采用橫向擴(kuò)展。第四個要考慮的問題是性能,大數(shù)據(jù)中幾乎不會對數(shù)據(jù)進(jìn)行修改,因此大數(shù)據(jù)存儲設(shè)備考慮的更多的是如何快速的讀寫。最后一個要考慮的問題是安全性,采用多副本機(jī)制。1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.3分析、建模計(jì)算

研究大數(shù)據(jù)的目的是為了提取數(shù)據(jù)的深度價值,為行業(yè)提供高附加值的應(yīng)用和服務(wù)。毫無疑問,數(shù)據(jù)分析是大數(shù)據(jù)的核心內(nèi)容。在傳統(tǒng)的業(yè)務(wù)場景下,數(shù)據(jù)都是存儲在數(shù)據(jù)庫服務(wù)器上面的,如圖1-3所示。圖1-3.傳統(tǒng)業(yè)務(wù)場景下的數(shù)據(jù)處理

在大數(shù)據(jù)場景下,采用將任務(wù)拆分為多個小的任務(wù),將這些小的任務(wù)同時進(jìn)行,最后將結(jié)果匯總。這里給大家介紹兩個概念,一個是并行計(jì)算,一個是分布式計(jì)算,都可以實(shí)現(xiàn)大數(shù)據(jù)場景下的數(shù)據(jù)分析。

并行計(jì)算(ParallelComputing)是指同時使用多種計(jì)算資源解決計(jì)算問題的過程,它是相對于串型計(jì)算來說的。串行計(jì)算是每個任務(wù)分時處理,任務(wù)以隊(duì)列的形式依次被處理器處理。1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.3分析、建模計(jì)算

并行計(jì)算是可以同時處理多個任務(wù)或者指令的,多核CPU是可以并行處理任務(wù)的,如圖1-4所示。并行計(jì)算又可以劃分成時間并行和空間并行,空間并行是使用多個處理器執(zhí)行并發(fā)計(jì)算,時間并行是流水線技術(shù)。圖1-4.串行計(jì)算與并行計(jì)算

分布式計(jì)算是一門計(jì)算機(jī)科學(xué),它研究如何把一個需要非常巨大的計(jì)算能力才能解決的問題,分成許多小的部分,然后把這些部分分配給許多計(jì)算機(jī)進(jìn)行處理,最后把這些計(jì)算結(jié)果綜合起來,得到最終的結(jié)果。從這個概念中,我們發(fā)現(xiàn)分布式計(jì)算跟并行計(jì)算其實(shí)是類似的,都是將大的任務(wù)分解成小的任務(wù),最后把這些結(jié)果進(jìn)行綜合起來,得到最終的結(jié)果。

其實(shí)我們經(jīng)常將并行計(jì)算和分布式計(jì)算混為一談,沒有嚴(yán)格的去區(qū)分它們。如果說非要區(qū)分的話,用維基百科上的一段話說就是并行計(jì)算它所有的處理器共享內(nèi)存,可以在內(nèi)存中直接交換數(shù)據(jù),而分布式計(jì)算它的每個處理器都有自己獨(dú)立的內(nèi)存,數(shù)據(jù)的交換需要通過處理器之間來實(shí)現(xiàn),也就是說他們在任務(wù)之間的數(shù)據(jù)共享上是有區(qū)別的。1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.3分析、建模計(jì)算分布式計(jì)算有哪些優(yōu)點(diǎn)?第一,分布式計(jì)算是建立在集群環(huán)境下的,可以充分利用集群中的資源。第二,建立在集群環(huán)境下的分布式計(jì)算也能夠平衡這些資源的負(fù)載。

另一方面,數(shù)據(jù)也是存儲在集群中的,這樣我們可以把程序發(fā)送到數(shù)據(jù)所在的地方進(jìn)行計(jì)算,這樣可以節(jié)省大量的網(wǎng)絡(luò)資源,縮短程序運(yùn)行的時間。

分布式計(jì)算通常和分布式存儲是一起的,Hadoop系統(tǒng)里面的MapReduce就是一個分布式計(jì)算框架,它簡化了開發(fā)分布式計(jì)算程序的難度。

數(shù)據(jù)分析的目的一般有兩種,一種是預(yù)測,一種是得出結(jié)論。如果是預(yù)測的話,直接用模型對新的數(shù)據(jù)進(jìn)行預(yù)測就可以了,如果是結(jié)論性質(zhì)的,就需要通過一種手段將結(jié)果簡單、清晰、有效地展示出來。在大數(shù)據(jù)里面,有一門專門研究如何將分析結(jié)果展示出來的學(xué)科,叫做數(shù)據(jù)可視化。1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.4結(jié)果展示

數(shù)據(jù)可視化主要是借助于圖形手段,清晰、有效的傳達(dá)與溝通信息。數(shù)據(jù)可視化需要達(dá)到以下目的:簡單、高效、準(zhǔn)確的表述結(jié)論,如果能夠兼具美感,那就是最好的。有的人往往會走兩個極端,一個是為了美感而忽略了真正要表達(dá)的意思,另一個是為了完整地表達(dá)結(jié)論而制作出一些很枯燥、乏味的圖片。因此如何能夠平衡設(shè)計(jì)與功能,將不可見的數(shù)據(jù)轉(zhuǎn)化為可見的圖形符號,將看起來沒法解釋和關(guān)聯(lián)的數(shù)據(jù)建立起關(guān)聯(lián),從中挖掘出有用的商業(yè)價值,這是做數(shù)據(jù)可視化需要考慮的。如圖1-5中所示。圖1-5可視化示例圖(來源于網(wǎng)絡(luò)/tools/)

大數(shù)據(jù)在世界范圍內(nèi)的應(yīng)用已經(jīng)十分廣泛,例如Google公司曾經(jīng)通過全美各地區(qū)搜索H1N1及流感相關(guān)關(guān)鍵字頻率和分布得出疫情暴發(fā)的情報(bào);對沖基金通過Twitter用戶每天關(guān)于情緒的關(guān)鍵字進(jìn)行以億為單位的數(shù)據(jù)分析,作為買入和賣出股票的參考;Boston的爆炸案通過當(dāng)天的數(shù)據(jù)分析,第二天就抓獲了嫌疑犯并制止了其再次作案。1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.5數(shù)據(jù)安全與隱私保護(hù)而大數(shù)據(jù)成為競爭新焦點(diǎn)的同時也帶來了更多的安全風(fēng)險,表現(xiàn)在下面幾個方面:

業(yè)務(wù)數(shù)據(jù):大數(shù)據(jù)本身成為網(wǎng)絡(luò)攻擊的顯著目標(biāo)。

隱私泄露:大數(shù)據(jù)加大隱私泄露風(fēng)險。

存儲風(fēng)險:大數(shù)據(jù)對現(xiàn)有的存儲和安防措施提出新挑戰(zhàn)。APT(AdvancedPersistentThreat)攻擊:大數(shù)據(jù)成為高級可持續(xù)攻擊的載體。

大數(shù)據(jù)不僅意味著海量的數(shù)據(jù),也意味著更復(fù)雜、更敏感的數(shù)據(jù),數(shù)據(jù)會吸引更多的潛在攻擊者,成為更具吸引力的目標(biāo)。而數(shù)據(jù)的大量聚集,也使得黑客一次成功的攻擊能夠獲得更多的數(shù)據(jù),無形中降低了黑客的進(jìn)攻成本,增加了“收益率”。大數(shù)據(jù)帶來的安全挑戰(zhàn)主要分為3類:(1)用戶隱私保護(hù):不僅限于個人隱私泄露,還在于基于大數(shù)據(jù)對人們狀態(tài)和行為的預(yù)測,目前用戶數(shù)據(jù)的收集、管理和使用缺乏監(jiān)督,主要依靠企業(yè)自律。(2)大數(shù)據(jù)的可信性:威脅之一是偽造或刻意制造數(shù)據(jù),而錯誤的數(shù)據(jù)往往會導(dǎo)致錯誤的結(jié)論,威脅之二是數(shù)據(jù)在傳播中的逐步失真。(3)如何實(shí)現(xiàn)大數(shù)據(jù)訪問控制:訪問控制的第一個問題是難以預(yù)設(shè)角色,實(shí)現(xiàn)角色劃分,第二個問題是難以預(yù)知每個角色的實(shí)際權(quán)限。1.3大數(shù)據(jù)處理的關(guān)鍵技術(shù)1.3.5數(shù)據(jù)安全與隱私保護(hù)

大數(shù)據(jù)對現(xiàn)有的存儲和安防措施提出了更大的挑戰(zhàn)。攻擊者利用大數(shù)據(jù)將攻擊很好地隱藏起來,使得傳統(tǒng)的防護(hù)策略難以檢測出來。而大數(shù)據(jù)價值的低密度性也讓安全分析工具很難聚焦在價值點(diǎn)上。隨著數(shù)據(jù)的增長,安全防護(hù)更新升級速度無法跟上數(shù)據(jù)量非線性增長的步伐。

大數(shù)據(jù)可能成為高級可持續(xù)攻擊的載體。數(shù)據(jù)的大集中導(dǎo)致復(fù)雜多樣的數(shù)據(jù)存儲,如可能出現(xiàn)數(shù)據(jù)違規(guī)存儲,而常規(guī)的安全掃描手段需要耗費(fèi)過多的時間,已影響到安全控制措施能否正確運(yùn)行,攻擊者可設(shè)置陷阱誤導(dǎo)安全廠商提取目標(biāo)信息,導(dǎo)致安全監(jiān)測偏離應(yīng)有的方向。

傳統(tǒng)高性能計(jì)算中的并行編程模型抽象度不高,開發(fā)人員需要了解底層的配置和并行實(shí)現(xiàn)細(xì)節(jié),并行計(jì)算面臨的如下挑戰(zhàn):(1)編程困難

并行計(jì)算編程,首先要把問題中的并行性識別出來,也就是需要識別哪些部分是可以并行的,然后用編程語言把它表達(dá)出來,所以這個部分是很困難的。其次,并行計(jì)算的程序是很難寫對的。要在中間加上很多同步語句或者使用鎖等各種機(jī)制來保證并行計(jì)算的各個部分能夠有效的協(xié)調(diào)。再次,寫出來一個正確的并行程序,實(shí)際上也不能夠說就已經(jīng)成功了,因?yàn)椴⑿杏?jì)算的目標(biāo)是提高性能。但是如果寫出來的并行程序,它的性能比串行程序還要差,那么這時候不能說我們的并行計(jì)算是成功的,這又涉及到下一個挑戰(zhàn),就是性能調(diào)優(yōu)難。(2)性能調(diào)優(yōu)難

并行計(jì)算編程不僅要寫出正確的并行程序,還要能夠進(jìn)一步地去調(diào)整它的性能,去做很多細(xì)致的分析和調(diào)優(yōu),使得它的性能能夠達(dá)到我們預(yù)期的要求。(3)容錯難

當(dāng)我們不是使用單臺機(jī)器來做計(jì)算,而是使用很多臺機(jī)器組成的集群來做計(jì)算的時候,這么多臺機(jī)器同時運(yùn)行,他們出故障的可能性就會比單臺機(jī)器出故障的可能性要大得多。1.4大數(shù)據(jù)處理框架1.4.1并行計(jì)算面臨的挑戰(zhàn)

由于并行計(jì)算所面臨的幾個挑戰(zhàn)性的問題,所以一個優(yōu)良的大數(shù)據(jù)處理并行系統(tǒng),需要在以下的三個主要方面來進(jìn)行權(quán)衡:(1)編程模型,問題中并行性的識別和描述這個挑戰(zhàn),是用編程模型來解決的。(2)性能和成本優(yōu)化,這里就涉及到并行計(jì)算的局部性、負(fù)載均衡等性能問題的解決,以確保并行計(jì)算程序不僅寫得對,而且要寫得快。(3)容錯能力,大數(shù)據(jù)處理系統(tǒng)中的程序不僅能夠運(yùn)行正確、速度快,還需要應(yīng)付系統(tǒng)中非常有可能出現(xiàn)的系統(tǒng)故障,也就是需要具有較好的容錯能力。總之,大數(shù)據(jù)處理并行系統(tǒng)多是采用基于集群的分布式并行編程能夠讓軟件與數(shù)據(jù)同時運(yùn)行在連成一個網(wǎng)絡(luò)的許多臺計(jì)算機(jī)上,由此獲得海量計(jì)算能力。1.4大數(shù)據(jù)處理框架1.4.2大數(shù)據(jù)并行處理系統(tǒng)大數(shù)據(jù)并行處理框架主要經(jīng)歷了如下幾種:(1)MPI并行計(jì)算編程框架

在新型大數(shù)據(jù)處理技術(shù)與平臺出現(xiàn)之前,人們處理大規(guī)模數(shù)據(jù)或計(jì)算密集型科學(xué)計(jì)算任務(wù)的方式通常是借助于MPI(MessagePassingInterface)編程模型和方法。MPI在處理器之間以消息傳遞的方式進(jìn)行數(shù)據(jù)通信和同步,以庫函數(shù)形式為程序員提供一組顯式調(diào)用的編程接口。MPI原本是一種基于消息傳遞的高性能并行計(jì)算編程接口,在大數(shù)據(jù)處理技術(shù)與平臺出現(xiàn)之前,業(yè)界也使用MPI進(jìn)行大數(shù)據(jù)的并行化編程與計(jì)算。

然而,MPI由于缺少統(tǒng)一的計(jì)算框架支持,在處理大數(shù)據(jù)時還存在很多不足,包括:缺少分布式數(shù)據(jù)存儲管理能力、無法有效應(yīng)對大規(guī)模數(shù)據(jù)的處理;沒有良好的數(shù)據(jù)和任務(wù)劃分支持;數(shù)據(jù)通信模型過于基礎(chǔ),實(shí)現(xiàn)稍復(fù)雜的通信模式(例如shuffle)時,需要大量的編程工作;數(shù)據(jù)通信開銷大,當(dāng)計(jì)算問題復(fù)雜、節(jié)點(diǎn)數(shù)量大時,容易導(dǎo)致性能大幅下降;沒有計(jì)算節(jié)點(diǎn)失效容錯機(jī)制,一旦有節(jié)點(diǎn)失效,可能會導(dǎo)致整個計(jì)算過程無效。

總之,因?yàn)镸PI缺少良好的架構(gòu)支撐,程序員需要考慮包括數(shù)據(jù)存儲、劃分、分發(fā)、結(jié)果收集、容錯處理等諸多細(xì)節(jié),這使得并行化編程計(jì)算的自動化程度較低、程序設(shè)計(jì)較為復(fù)雜、程序員負(fù)擔(dān)較重。1.4大數(shù)據(jù)處理框架1.4.3大數(shù)據(jù)并行處理系統(tǒng)大數(shù)據(jù)并行處理框架主要經(jīng)歷了如下幾種:(2)MapReduce批處理框架

針對MPI在自動化編程計(jì)算時的上述缺陷,人們開始研究更為有效的大數(shù)據(jù)并行編程和計(jì)算方法。Google在2004年的OSDI會議上發(fā)表了題為“MapReduce:SimplifiedDataProcessingonLargeClusters”的論文(后又刊登在ACMCommunications期刊上),提出了一種新型的面向大規(guī)模數(shù)據(jù)處理的并行計(jì)算模型和技術(shù)MapReduce。MapReduce提供給程序員的一個抽象的高層編程接口,通過抽象模型和計(jì)算框架把需要"做什么"和具體"怎么做"分開了,使得程序員只需要關(guān)也其具體的應(yīng)用計(jì)算問題:而完成計(jì)算任務(wù)涉及到的諸多系統(tǒng)層細(xì)節(jié),都被隱藏起來交給計(jì)算框架和系統(tǒng)底層自動處理。MapReduce有力地推動了大數(shù)據(jù)技術(shù)的發(fā)展,它也是一種目前業(yè)界主流大數(shù)據(jù)計(jì)算模式與系統(tǒng)平臺。

由于MapReduce設(shè)計(jì)之初主要是為了完成大數(shù)據(jù)的線下批處理,在處理要求低延遲或數(shù)據(jù)和計(jì)算關(guān)系復(fù)雜的大數(shù)據(jù)問題時,MapReduce的執(zhí)行效率不夠高。因此,學(xué)術(shù)界和業(yè)界又在不斷的研究中推出了多種大數(shù)據(jù)計(jì)算模式。1.4大數(shù)據(jù)處理框架1.4.3大數(shù)據(jù)并行處理系統(tǒng)大數(shù)據(jù)并行處理框架主要經(jīng)歷了如下幾種:(3)流處理框架

流處理系統(tǒng)會對隨時進(jìn)入系統(tǒng)的數(shù)據(jù)進(jìn)行計(jì)算。流處理方式無需針對整個數(shù)據(jù)集執(zhí)行操作,而是對通過系統(tǒng)傳輸?shù)拿總€數(shù)據(jù)項(xiàng)執(zhí)行操作。流處理中的數(shù)據(jù)集是“無邊界”的,這就產(chǎn)生了幾個重要的影響:a.完整數(shù)據(jù)集只能代表截至目前已經(jīng)進(jìn)入到系統(tǒng)中的數(shù)據(jù)總量。b.工作數(shù)據(jù)集也許更相關(guān),在特定時間只能代表某個單一數(shù)據(jù)項(xiàng)。1.4大數(shù)據(jù)處理框架1.4.3大數(shù)據(jù)并行處理系統(tǒng)

處理工作是基于事件的,除非明確停止否則沒有“盡頭”。處理結(jié)果立刻可用,并會隨著新數(shù)據(jù)的抵達(dá)繼續(xù)更新。流處理系統(tǒng)可以處理幾乎無限量的數(shù)據(jù),但同一時間只能處理一條(真正的流處理)或很少量(微批處理,Micro-batchProcessing)數(shù)據(jù),不同記錄間只維持最少量的狀態(tài)。雖然大部分系統(tǒng)提供了用于維持某些狀態(tài)的方法,但流處理主要針對副作用更少,更加功能性的處理(Functionalprocessing)進(jìn)行優(yōu)化。ApacheStorm是一種側(cè)重于極低延遲的流處理框架,也許是要求近實(shí)時處理的工作負(fù)載的最佳選擇。該技術(shù)可處理非常大量的數(shù)據(jù),通過比其他解決方案更低的延遲提供結(jié)果。ApacheSamza是一種與ApacheKafka消息系統(tǒng)緊密綁定的流處理框架。雖然Kafka可用于很多流處理系統(tǒng),但按照設(shè)計(jì),Samza可以更好地發(fā)揮Kafka獨(dú)特的架構(gòu)優(yōu)勢和保障。大數(shù)據(jù)并行處理框架主要經(jīng)歷了如下幾種:(4)混合處理框架

可同時處理批處理和流處理工作負(fù)載。這些框架可以用相同或相關(guān)的組件和API處理兩種類型的數(shù)據(jù),借此讓不同的處理需求得以簡化。混合框架意在提供一種數(shù)據(jù)處理的通用解決方案。這種框架不僅可以提供處理數(shù)據(jù)所需的方法,而且提供了自己的集成項(xiàng)、庫、工具,可勝任圖形分析、機(jī)器學(xué)習(xí)、交互式查詢等多種任務(wù)。1.4大數(shù)據(jù)處理框架1.4.3大數(shù)據(jù)并行處理系統(tǒng)2013年出現(xiàn)的Spark是支撐常見的大數(shù)據(jù)處理計(jì)算模式的集大成者。Spark在全面兼容HadoopHDFS分布式存儲訪問接口的基礎(chǔ)上,通過更多的利用內(nèi)存處理大幅提高了并行化計(jì)算系統(tǒng)的性能。當(dāng)然,Spark等新的大數(shù)據(jù)計(jì)算系統(tǒng)的出現(xiàn),并沒有完全取代Hadoop,而是與Hadoop系統(tǒng)共存與融合,擴(kuò)大了大數(shù)據(jù)技術(shù)的生態(tài)系統(tǒng),使得大數(shù)據(jù)技術(shù)生態(tài)環(huán)境更趨完整和多樣化。

除了ApacheSpark,還出現(xiàn)了起源于歐洲的大數(shù)據(jù)內(nèi)存計(jì)算框架ApacheFlink。ApacheFlink,原名Stratosphere,最初是由TUBerlin、Humboldt和HassoPlattnerInstitute開發(fā)的大數(shù)據(jù)處理平臺,如今已經(jīng)升級為Apache的頂級項(xiàng)目。Flink的核心是一個流式數(shù)據(jù)流引擎(StreamingDataflowEngine),它為數(shù)據(jù)的分布式計(jì)算提供了數(shù)據(jù)分布、通信、容錯等功能。Flink的核心同時支持流式計(jì)算和批處理計(jì)算(批處理計(jì)算當(dāng)作流式計(jì)算的一種特殊情況),并為這兩種類型的計(jì)算提供了相應(yīng)的分布式數(shù)據(jù)計(jì)算模型DataStream和DataSet以及豐富的數(shù)據(jù)轉(zhuǎn)換接口。1.4大數(shù)據(jù)關(guān)鍵技術(shù)表1-5大數(shù)據(jù)技術(shù)的不同層面及其功能技術(shù)層面功能數(shù)據(jù)采集利用ETL工具將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等,抽取到臨時中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ);或者也可以把實(shí)時采集的數(shù)據(jù)作為流計(jì)算系統(tǒng)的輸入,進(jìn)行實(shí)時處理分析數(shù)據(jù)存儲和管理利用分布式文件系統(tǒng)、數(shù)據(jù)倉庫、關(guān)系數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫、云數(shù)據(jù)庫等,實(shí)現(xiàn)對結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化海量數(shù)據(jù)的存儲和管理數(shù)據(jù)處理與分析利用分布式并行編程模型和計(jì)算框架,結(jié)合機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘算法,實(shí)現(xiàn)對海量數(shù)據(jù)的處理和分析;對分析結(jié)果進(jìn)行可視化呈現(xiàn),幫助人們更好地理解數(shù)據(jù)、分析數(shù)據(jù)數(shù)據(jù)隱私和安全在從大數(shù)據(jù)中挖掘潛在的巨大商業(yè)價值和學(xué)術(shù)價值的同時,構(gòu)建隱私數(shù)據(jù)保護(hù)體系和數(shù)據(jù)安全體系,有效保護(hù)個人隱私和數(shù)據(jù)安全1.4大數(shù)據(jù)關(guān)鍵技術(shù)分布式存儲分布式處理GFS\HDFSBigTable\HBaseNoSQL(鍵值、列族、圖形、文檔數(shù)據(jù)庫)NewSQL(如:SQLAzure)MapReduce大數(shù)據(jù)兩大核心技術(shù)1.4大數(shù)據(jù)計(jì)算模式大數(shù)據(jù)計(jì)算模式解決問題代表產(chǎn)品批處理計(jì)算針對大規(guī)模數(shù)據(jù)的批量處理MapReduce、Spark等流計(jì)算針對流數(shù)據(jù)的實(shí)時計(jì)算Storm、S4、Flume、Streams、Puma、DStream、SuperMario、銀河流數(shù)據(jù)處理平臺等圖計(jì)算針對大規(guī)模圖結(jié)構(gòu)數(shù)據(jù)的處理Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等查詢分析計(jì)算大規(guī)模數(shù)據(jù)的存儲管理和查詢分析Dremel、Hive、Cassandra、Impala等表1-3大數(shù)據(jù)計(jì)算模式及其代表產(chǎn)品

大數(shù)據(jù)產(chǎn)業(yè)構(gòu)建一般可分為6個層次,分別為:硬件設(shè)施、基礎(chǔ)服務(wù)、數(shù)據(jù)來源、技術(shù)開發(fā)、融合應(yīng)用及產(chǎn)業(yè)支撐。具體如下列舉及表1所示。(1)硬件設(shè)施包括采集設(shè)備、傳輸設(shè)備、計(jì)算存儲、設(shè)計(jì)集成等4個方面;(2)基礎(chǔ)服務(wù)包括網(wǎng)絡(luò)服務(wù)、云平臺服務(wù)、系統(tǒng)開發(fā)等3個方面;(3)數(shù)據(jù)來源包括政府?dāng)?shù)據(jù)、行業(yè)數(shù)據(jù)、企業(yè)數(shù)據(jù)、物聯(lián)網(wǎng)數(shù)據(jù)、通信數(shù)據(jù)、互聯(lián)網(wǎng)數(shù)據(jù)、第三方數(shù)據(jù)等7個方面;(4)技術(shù)開發(fā)包括數(shù)據(jù)管理、技術(shù)研究、信息安全等3個方面;(5)融合應(yīng)用包括工業(yè)、農(nóng)業(yè)、政府、醫(yī)療、金融、電信、電商等行業(yè)需求相關(guān)的整體解決方案;(6)產(chǎn)業(yè)支撐包括數(shù)據(jù)評估中心、數(shù)據(jù)交易中心、科研機(jī)構(gòu)、行業(yè)聯(lián)盟、咨詢機(jī)構(gòu)、論壇會展、融資平臺、孵化機(jī)構(gòu)等。1.5大數(shù)據(jù)應(yīng)用1.5.1大數(shù)據(jù)產(chǎn)業(yè)構(gòu)建1.5大數(shù)據(jù)應(yīng)用1.5.1大數(shù)據(jù)產(chǎn)業(yè)構(gòu)建產(chǎn)業(yè)結(jié)構(gòu)簡介

硬件設(shè)施采集設(shè)備傳感器、采集器、讀寫器、交互設(shè)備等傳輸設(shè)備廣電傳輸設(shè)備、微波通信設(shè)備等計(jì)算存儲芯片、服務(wù)器、路由器、交換機(jī)、防火墻、入侵檢測防護(hù)設(shè)備、一體機(jī)等設(shè)計(jì)集成硬件設(shè)備及附帶軟件的設(shè)計(jì)、安裝、調(diào)試等

基礎(chǔ)服務(wù)網(wǎng)絡(luò)服務(wù)電信運(yùn)營、商業(yè)WIFI、網(wǎng)絡(luò)運(yùn)維等云平臺服務(wù)數(shù)據(jù)中心;基礎(chǔ)設(shè)施即服務(wù)IaaS托管、租用等;云服務(wù):平臺即服務(wù)PaaS、軟件即服務(wù)SaaS等系統(tǒng)開發(fā)架構(gòu)設(shè)計(jì)、系統(tǒng)集成、軟件定制等數(shù)據(jù)來源/政府?dāng)?shù)據(jù)、行業(yè)數(shù)據(jù)、企業(yè)數(shù)據(jù)、物聯(lián)網(wǎng)數(shù)據(jù)、通信數(shù)據(jù)、互聯(lián)網(wǎng)數(shù)據(jù)、第三方數(shù)據(jù)

技術(shù)開發(fā)數(shù)據(jù)管理數(shù)據(jù)集成:中間件、數(shù)據(jù)庫等;數(shù)據(jù)清洗:數(shù)據(jù)填充、光滑噪聲等;數(shù)據(jù)歸約:維度歸約、數(shù)值歸約等技術(shù)研究基礎(chǔ)研究:高性能計(jì)算、數(shù)據(jù)可視化、物聯(lián)網(wǎng)、5G、人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等;應(yīng)用研究:圖像、文本、視頻、語音、空間地理、社交等信息安全數(shù)據(jù)監(jiān)管、數(shù)據(jù)加密、脫敏脫密、數(shù)據(jù)認(rèn)證等融合應(yīng)用/工業(yè)、農(nóng)業(yè)、政府、醫(yī)療、金融、電信、電商等行業(yè)需求相關(guān)的整體解決方案產(chǎn)業(yè)支撐/數(shù)據(jù)評估中心、數(shù)據(jù)交易中心、科研機(jī)構(gòu)、行業(yè)聯(lián)盟、咨詢機(jī)構(gòu)、論壇會展、融資平臺、孵化機(jī)構(gòu)等表1.大數(shù)據(jù)產(chǎn)業(yè)構(gòu)建項(xiàng)目列表1.5大數(shù)據(jù)應(yīng)用1.5.2大數(shù)據(jù)應(yīng)用場景(1)醫(yī)療大數(shù)據(jù)

隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、人工智能等新興技術(shù)不斷和成熟,加速了傳統(tǒng)醫(yī)療行業(yè)與這些新興技術(shù)的融合,其中以健康醫(yī)療大數(shù)據(jù)為代表的醫(yī)療新業(yè)態(tài),不斷的激發(fā)醫(yī)療行業(yè)的發(fā)展。案例:零氪科技——醫(yī)療大數(shù)據(jù)領(lǐng)域零氪科技成立于2014年,從腫瘤大數(shù)據(jù)入手,搭建了醫(yī)療數(shù)據(jù)服務(wù)平臺,為醫(yī)療機(jī)構(gòu)、制藥企業(yè)、保險機(jī)構(gòu)等提供醫(yī)療大數(shù)據(jù)解決方案,以及人工智能輔助決策系統(tǒng)、患者全流程管理、醫(yī)院輿情監(jiān)控及品牌建設(shè)、藥械研發(fā)、保險控費(fèi)等一體化服務(wù)。零氪科技主要醫(yī)療大數(shù)據(jù)產(chǎn)品線如圖1-6所示:

圖1-6.零氪科技產(chǎn)品功能示意圖1.5大數(shù)據(jù)應(yīng)用1.5.2大數(shù)據(jù)應(yīng)用場景(2)營銷大數(shù)據(jù)

大數(shù)據(jù)服務(wù)商主要為企業(yè)提供大數(shù)據(jù)技術(shù)工具、大數(shù)據(jù)應(yīng)用服務(wù)以及技術(shù)開發(fā)服務(wù)。

技術(shù)開發(fā)服務(wù)主要針對企業(yè)客戶的個性化需求,為其定制開發(fā)大數(shù)據(jù)應(yīng)用系統(tǒng)及其他相關(guān)技術(shù)產(chǎn)品服務(wù),主要包括數(shù)據(jù)采集工具、數(shù)據(jù)分析系統(tǒng)、運(yùn)營平臺、會員管理系統(tǒng)等。大數(shù)據(jù)營銷產(chǎn)業(yè)鏈如下圖1-7所示。

1.5大數(shù)據(jù)應(yīng)用1.5.2大數(shù)據(jù)應(yīng)用場景案例:木瓜移動——海外營銷企業(yè)

北京木瓜移動科技股份有限公司是一家專注于大數(shù)據(jù)營銷技術(shù)的科技型公司,由清華、斯坦福、谷歌背景的海歸精英團(tuán)隊(duì)創(chuàng)立于2008年,總部設(shè)在北京,并在美國和中國香港等地設(shè)立了子公司。

圖1-9.木瓜移動商業(yè)模式示意圖1.5大數(shù)據(jù)應(yīng)用1.5.2大數(shù)據(jù)應(yīng)用場景(3)公共安全大數(shù)據(jù)

大數(shù)據(jù)帶來了數(shù)據(jù)處理方式變革,基于大數(shù)據(jù)的挖掘分析,將有助于公共安全治理機(jī)制由“事后處理”轉(zhuǎn)變?yōu)椤笆虑邦A(yù)測”。傳統(tǒng)公共安全治理方式為應(yīng)對式?jīng)Q策,體現(xiàn)為“事件突發(fā)—邏輯分析—尋找因果關(guān)系—進(jìn)行突發(fā)事件應(yīng)急決策”的流程;

而預(yù)測式?jīng)Q策則是一種“正向”思維,體現(xiàn)為“挖掘數(shù)據(jù)—量化分析—尋找相互關(guān)系—進(jìn)行突發(fā)事件預(yù)測決策”的流程。

案例:美亞柏科——電子數(shù)據(jù)取證行業(yè)

美亞柏科是全球電子數(shù)據(jù)取證行業(yè)兩家上市企業(yè)之一,為國內(nèi)電子數(shù)據(jù)取證行業(yè)龍頭企業(yè)、網(wǎng)絡(luò)空間安全與信息化專家。美亞柏科主營業(yè)務(wù)由“四大產(chǎn)品+四大服務(wù)”組成,四大產(chǎn)品包括電子數(shù)據(jù)取證、網(wǎng)絡(luò)空間安全、大數(shù)據(jù)信息化及專項(xiàng)執(zhí)法裝備,在四大產(chǎn)品的技術(shù)基礎(chǔ)上衍生出企業(yè)內(nèi)部調(diào)查、網(wǎng)絡(luò)空間安全服務(wù)、存證云+、培訓(xùn)及技術(shù)支持增值服務(wù)四大服務(wù),如圖1-10所示。2019年上半年,美亞柏科電子數(shù)據(jù)取證業(yè)務(wù)收入2.54億元,占比為43.5%,大數(shù)據(jù)信息化平臺業(yè)務(wù)收入為2.33億元,占比為39.9%。美亞柏科從“取證1.0”到“取證3.0”演變?nèi)缦聢D1-11所示。1.5大數(shù)據(jù)應(yīng)用1.5.2大數(shù)據(jù)應(yīng)用場景(4)工業(yè)大數(shù)據(jù)

工業(yè)大數(shù)據(jù)的產(chǎn)生貫穿與整個生產(chǎn)制造過程,包括了設(shè)計(jì)、研發(fā)、訂單、采購、制造、供應(yīng)、庫存、發(fā)貨、交付、售后、運(yùn)維、報(bào)廢回收等整個產(chǎn)品生命周期所產(chǎn)生的各類數(shù)據(jù)及相關(guān)技術(shù)和應(yīng)用。

工業(yè)大數(shù)據(jù)主要分為三類:第一類為生產(chǎn)經(jīng)營相關(guān)數(shù)據(jù),包括企業(yè)資源管理(ERP)、產(chǎn)品生命周期管理(PLM)、供應(yīng)鏈管理(SCM)、客戶關(guān)系管理等;第二類為設(shè)備物聯(lián)數(shù)據(jù),主要包括工業(yè)生產(chǎn)設(shè)備的操作和運(yùn)行情況、工況狀況、環(huán)境參數(shù)等,狹義的工業(yè)大數(shù)據(jù)主要指該類數(shù)據(jù);第三類為外部數(shù)據(jù),是指與工業(yè)企業(yè)生產(chǎn)活動和產(chǎn)品相關(guān)的企業(yè)外部互聯(lián)網(wǎng)來源數(shù)據(jù)。如下圖1-12所示。

1.5大數(shù)據(jù)應(yīng)用1.5.2大數(shù)據(jù)應(yīng)用場景案例:昆侖數(shù)據(jù)——工業(yè)互聯(lián)網(wǎng)領(lǐng)域企業(yè)

昆侖數(shù)據(jù)是工業(yè)互聯(lián)網(wǎng)領(lǐng)域的領(lǐng)軍企業(yè),創(chuàng)始團(tuán)隊(duì)來自IBM、華為、西門子等信息科技與工業(yè)企業(yè),以及清華大學(xué)等國內(nèi)外知名研究機(jī)構(gòu),蟬聯(lián)“中國大數(shù)據(jù)企業(yè)50強(qiáng)”,受邀參與制訂《中國制造2025》工業(yè)大數(shù)據(jù)技術(shù)路線圖,發(fā)起成立并主導(dǎo)運(yùn)營工業(yè)大數(shù)據(jù)制造業(yè)創(chuàng)新中心,致力于用大數(shù)據(jù)和人工智能技術(shù),推動中國工業(yè)智慧升級。之前,昆侖數(shù)據(jù)的典型產(chǎn)品是KMX大數(shù)據(jù)平臺,為全球首創(chuàng)的工業(yè)大數(shù)據(jù)全生命周期管理與分析平臺。2018年昆侖數(shù)據(jù)推出全新的工業(yè)互聯(lián)網(wǎng)平臺——KSTONE,標(biāo)志著昆侖數(shù)據(jù)完成了從“工業(yè)大數(shù)據(jù)”到“工業(yè)互聯(lián)網(wǎng)”的華麗轉(zhuǎn)身。昆侖數(shù)據(jù)服務(wù)的行業(yè)和應(yīng)用領(lǐng)域如下圖1-13所示。

1.5大數(shù)據(jù)應(yīng)用1.5.3大數(shù)據(jù)行業(yè)發(fā)展趨勢

隨著越來越多的企業(yè)走向在線平臺,企業(yè)的生產(chǎn)運(yùn)營轉(zhuǎn)向數(shù)字化管理,極大的刺激了全球大數(shù)據(jù)市場需求。同時在云計(jì)算、人工智能、物聯(lián)網(wǎng)、信息通信等技術(shù)交織應(yīng)用驅(qū)動經(jīng)濟(jì)和生活數(shù)字化發(fā)展趨勢下,大數(shù)據(jù)市場仍將保持較快增長。

大數(shù)據(jù)行業(yè)發(fā)展趨勢具有以下四個方面:(1)數(shù)據(jù)安全與隱私保護(hù)需求日漸高漲安全與隱私保護(hù)意識日益增強(qiáng),敏感信息約束和數(shù)據(jù)安全檢查成為互聯(lián)網(wǎng)、移動端的用戶數(shù)據(jù)管控的難點(diǎn)。(2)單一大數(shù)據(jù)平臺向大數(shù)據(jù)、人工智能、云計(jì)算融合的一體化平臺發(fā)展傳統(tǒng)的單一大數(shù)據(jù)平臺已經(jīng)無法滿足用戶的應(yīng)用需求,而將大數(shù)據(jù)、人工智能、云計(jì)算融于一體的大數(shù)據(jù)分析平臺,將成為一個聯(lián)系IT系統(tǒng)與從員工、客戶、合作伙伴、社會,到設(shè)備的一個全生態(tài)的核心系統(tǒng)。(3)發(fā)揮數(shù)據(jù)價值,企業(yè)逐步推進(jìn)數(shù)字化轉(zhuǎn)型越來越多的企業(yè)將“數(shù)字”視為核心資源、資產(chǎn)和財(cái)富,紛紛制定數(shù)字化轉(zhuǎn)型戰(zhàn)略,以搶占數(shù)字經(jīng)濟(jì)的新的制高點(diǎn)。大部分企業(yè)將制定數(shù)字化戰(zhàn)略,積極推進(jìn)數(shù)字化轉(zhuǎn)型,達(dá)到敏捷業(yè)務(wù)創(chuàng)新和業(yè)務(wù)智能的發(fā)展目標(biāo)。(4)中小大數(shù)據(jù)企業(yè)聚焦細(xì)分市場領(lǐng)域隨著大數(shù)據(jù)產(chǎn)業(yè)鏈逐漸完善,在大數(shù)據(jù)各個細(xì)分市場,包括硬件支持、數(shù)據(jù)源、交易層、技術(shù)層、應(yīng)用層以及衍生層等,都出現(xiàn)了大量不同類型的中小獨(dú)立公司,帶動各自領(lǐng)域的技術(shù)與應(yīng)用創(chuàng)新。隨大數(shù)據(jù)應(yīng)用層次深入,產(chǎn)業(yè)分工將更加明確,中小企業(yè)需聚焦于細(xì)分領(lǐng)域,推出針對性產(chǎn)品,尋找自己的定位與價值。謝謝!第2章大數(shù)據(jù)處理框架Hadoop提綱2.1Hadoop概述2.2Hadoop的體系結(jié)構(gòu)和生態(tài)系統(tǒng)2.3Hadoop的特點(diǎn)、應(yīng)用與發(fā)展趨勢2.4Hadoop集群搭建和部署2.1Hadoop概述2.1.1Hadoop是什么2.1.2Hadoop發(fā)展簡史2.1.3Hadoop的版本演變2.1.1Hadoop簡介

Hadoop是Apache軟件基金會旗下的一個開源分布式計(jì)算平臺,為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)Hadoop是基于Java語言開發(fā)的,具有很好的跨平臺特性,并且可以部署在廉價的計(jì)算機(jī)集群中Hadoop的核心是分布式文件系統(tǒng)HDFS(HadoopDistributedFileSystem)和MapReduceHadoop被公認(rèn)為行業(yè)大數(shù)據(jù)標(biāo)準(zhǔn)開源軟件,在分布式環(huán)境下提供了海量數(shù)據(jù)的處理能力幾乎所有主流廠商都圍繞Hadoop提供開發(fā)工具、開源軟件、商業(yè)化工具和技術(shù)服務(wù),如谷歌、雅虎、微軟、思科、淘寶等,都支持Hadoop2.1.2Hadoop發(fā)展簡史

Hadoop最初是由ApacheLucene項(xiàng)目的創(chuàng)始人DougCutting開發(fā)的文本搜索庫。Hadoop源自始于2002年的ApacheNutch項(xiàng)目——一個開源的網(wǎng)絡(luò)搜索引擎并且也是Lucene項(xiàng)目的一部分

在2004年,Nutch項(xiàng)目也模仿GFS開發(fā)了自己的分布式文件系統(tǒng)NDFS(NutchDistributedFileSystem),也就是HDFS的前身2004年,谷歌公司又發(fā)表了另一篇具有深遠(yuǎn)影響的論文,闡述了MapReduce分布式編程思想2005年,Nutch開源實(shí)現(xiàn)了谷歌的MapReduceHadoop的標(biāo)志2.1.2Hadoop發(fā)展簡史

到了2006年2月,Nutch中的NDFS和MapReduce開始獨(dú)立出來,成為Lucene項(xiàng)目的一個子項(xiàng)目,稱為Hadoop,同時,DougCutting加盟雅虎2008年1月,Hadoop正式成為Apache頂級項(xiàng)目,Hadoop也逐漸開始被雅虎之外的其他公司使用2008年4月,Hadoop打破世界紀(jì)錄,成為最快排序1TB數(shù)據(jù)的系統(tǒng),它采用一個由910個節(jié)點(diǎn)構(gòu)成的集群進(jìn)行運(yùn)算,排序時間只用了209秒在2009年5月,Hadoop更是把1TB數(shù)據(jù)排序時間縮短到62秒。Hadoop從此名聲大震,迅速發(fā)展成為大數(shù)據(jù)時代最具影響力的開源分布式開發(fā)平臺,并成為事實(shí)上的大數(shù)據(jù)處理標(biāo)準(zhǔn)2.1.2Hadoop發(fā)展簡史2.1.3Hadoop的各種版本ApacheHadoop版本分為兩代,我們將第一代Hadoop稱為Hadoop1.0,第二代Hadoop稱為Hadoop2.0第一代Hadoop包含三個大版本,分別是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,變成了穩(wěn)定版,而0.21.x和0.22.x則增加了NameNodeHA等新的重大特性第二代Hadoop包含兩個版本,分別是0.23.x和2.x,它們完全不同于Hadoop1.0,是一套全新的架構(gòu),均包含HDFSFederation和YARN兩個系統(tǒng),相比于0.23.x,2.x增加了NameNodeHA和Wire-compatibility兩個重大特性2.1.3ApacheHadoop版本演變ApacheHadoopHortonworksCloudera(CDH:ClouderaDistributionHadoop)MapR……2.1.3Hadoop各種版本2.1.3Hadoop各種版本2012年以前的發(fā)行版基本為對Hadoop打補(bǔ)丁為主,出現(xiàn)了好幾個私有化Hadoop版本,所折射的是Hadoop產(chǎn)品在質(zhì)量上的缺陷。同期HDFS、HBase等社區(qū)的超高活躍度印證了這個事實(shí)而之后的公司更多是工具、集成、管理,所提供的不是“更好的Hadoop”而是如何更好的用好“現(xiàn)有”的Hadoop2014年以后,隨著Spark和其他OLAP產(chǎn)品的興起,折射出來是Hadoop善長的離線場景等已經(jīng)能夠很好的解決,希望通過擴(kuò)大生態(tài)來適應(yīng)新的硬件和拓展新的市場選擇Hadoop版本的考慮因素:是否開源(即是否免費(fèi))是否有穩(wěn)定版是否經(jīng)實(shí)踐檢驗(yàn)是否有強(qiáng)大的社區(qū)支持2008年Cloudera成為第一個Hadoop商業(yè)化公司,并在2009年推出第一個Hadoop發(fā)行版后,很多大公司也加入了做Hadoop產(chǎn)品化的行列2.1.3Hadoop各種版本2.1.4Hadoop補(bǔ)充傳統(tǒng)架構(gòu)應(yīng)對大數(shù)據(jù)傳統(tǒng)架構(gòu)IOEVPS服務(wù)器(虛擬專用服務(wù)器)("VirtualPrivateServer",或簡稱"VPS")是利用虛擬服務(wù)器軟件(如微軟的VirtualServer、VMware的ESXserver、SWsoft的Virtuozzo)在一臺物理服務(wù)器上創(chuàng)建多個相互隔離的小服務(wù)器。2.1.4Hadoop補(bǔ)充傳統(tǒng)架構(gòu)應(yīng)對大數(shù)據(jù)傳統(tǒng)架構(gòu)IOE的瓶頸基于共享存儲和高性能計(jì)算的架構(gòu)2.1.4Hadoop補(bǔ)充傳統(tǒng)架構(gòu)應(yīng)對大數(shù)據(jù)Hadoop架構(gòu)Hadoop平臺基本包括以下四個部分:Common、HDFS、YARN和MapReduce,YARN是在Hadoop2.0中才有的,在Hadoop1.0中是沒有YARN的。Hadoop平臺的基本組成如下圖所示。2.2Hadoop的體系結(jié)構(gòu)和生態(tài)系統(tǒng)2.2.1Hadoop的體系結(jié)構(gòu)下圖所示的是HDFS的體系結(jié)構(gòu),Hadoop集群中的主節(jié)點(diǎn)叫做NameNode,從節(jié)點(diǎn)叫做DataNode。NameNode用來保存元數(shù)據(jù)以及對外提供服務(wù)。元數(shù)據(jù)是HDFS目錄結(jié)構(gòu)以及文件存儲的分塊位置,在HDFS中一個大的文件被分割成很多小的塊,這些小塊叫做Block,每個Block的大小是可以配置的。2.2Hadoop的體系結(jié)構(gòu)和生態(tài)系統(tǒng)2.2.1Hadoop的體系結(jié)構(gòu)

如下圖是YARN的基本架構(gòu)。YARN涉及到一些組件和服務(wù),首先是ResourceManager,是用來做資源管理的。ResourceManager一般運(yùn)行在NameNode節(jié)點(diǎn)上,負(fù)責(zé)集群中所有NodeManager上的資源管理和調(diào)度。2.2Hadoop的體系結(jié)構(gòu)和生態(tài)系統(tǒng)2.2.1Hadoop的體系結(jié)構(gòu)Hadoop的項(xiàng)目結(jié)構(gòu)不斷豐富發(fā)展,已經(jīng)形成一個豐富的Hadoop生態(tài)系統(tǒng)YARN(分布式資源調(diào)度管理)2.2Hadoop的體系結(jié)構(gòu)和生態(tài)系統(tǒng)2.2.2Hadoop的生態(tài)系統(tǒng)組件功能HDFS分布式文件系統(tǒng)MapReduce分布式并行編程模型YARN資源管理和調(diào)度器TezApache最新的、支持DAG(DirectedAcyclicGraph,有向無環(huán)圖)作業(yè)的開源計(jì)算框架,它可以將多個有依賴的作業(yè)轉(zhuǎn)換為一個作業(yè)從而大幅提升DAG作業(yè)的性能。HiveHadoop上的數(shù)據(jù)倉庫HBaseHadoop上的非關(guān)系型的分布式數(shù)據(jù)庫Pig一個基于Hadoop的大規(guī)模數(shù)據(jù)分析平臺,提供類似SQL的查詢語言PigLatinSqoop用于在Hadoop與傳統(tǒng)數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)傳遞OozieHadoop上的工作流管理系統(tǒng)Zookeeper提供分布式協(xié)調(diào)一致性服務(wù)Storm流計(jì)算框架Flume一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)AmbariHadoop快速部署工具,支持ApacheHadoop集群的供應(yīng)、管理和監(jiān)控Kafka一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動作流數(shù)據(jù)Spark類似于HadoopMapReduce的通用并行框架2.2Hadoop的體系結(jié)構(gòu)和生態(tài)系統(tǒng)2.2.2Hadoop的生態(tài)系統(tǒng)

Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,并且是以一種可靠、高效、可伸縮的方式進(jìn)行處理的,它具有以下幾個方面的特性:

高可靠性

高效性

高可擴(kuò)展性

高容錯性

成本低

運(yùn)行在Linux平臺上

支持多種編程語言2.3Hadoop的特點(diǎn)、應(yīng)用與發(fā)展趨勢2.3.1Hadoop的特點(diǎn)

Hadoop憑借其突出的優(yōu)勢,已經(jīng)在各個領(lǐng)域得到了廣泛的應(yīng)用,而互聯(lián)網(wǎng)領(lǐng)域是其應(yīng)用的主陣地2007年,雅虎在Sunnyvale總部建立了M45——一個包含了4000個處理器和1.5PB容量的Hadoop集群系統(tǒng)Facebook作為全球知名的社交網(wǎng)站,Hadoop是非常理想的選擇,F(xiàn)acebook主要將Hadoop平臺用于日志處理、推薦系統(tǒng)和數(shù)據(jù)倉庫等方面

國內(nèi)采用Hadoop的公司主要有百度、淘寶、網(wǎng)易、華為、中國移動等,其中,淘寶的Hadoop集群比較大2.3Hadoop的特點(diǎn)、應(yīng)用與發(fā)展趨勢2.3.2Hadoop的應(yīng)用2.3Hadoop的特點(diǎn)、應(yīng)用與發(fā)展趨勢2.3.2Hadoop的應(yīng)用與發(fā)展趨勢

早在2012年在硅谷舉辦的Hadoop大會上,當(dāng)時Hadoop之父道卡廷已經(jīng)提出一個概念:“ApacheHadoopformsthekernelofanoperatingsystemforBigData,So,narrowlyspeaking,Hadoopaloneisanoperatingsystem.”也就是說,“ApacheHadoop構(gòu)成了大數(shù)據(jù)操作系統(tǒng)的內(nèi)核。所以,狹義地說,

Hadoop就是一個操作系統(tǒng)。”2.3Hadoop的特點(diǎn)、應(yīng)用與發(fā)展趨勢2.3.2Hadoop的應(yīng)用與發(fā)展趨勢至于Hadoop技術(shù)發(fā)展的方向,需要從以下三個方面來看。第一個方面:存儲。目前HDFS更多的適合存儲結(jié)構(gòu)化數(shù)據(jù),或者半結(jié)構(gòu)化的數(shù)據(jù),當(dāng)然這里所說的適合是針對“數(shù)據(jù)處理”來說的,對于非結(jié)構(gòu)化的數(shù)據(jù)可以存儲在HDFS中,但并不利于處理。面對著越來越多樣化的數(shù)據(jù)來源,使用對象存儲來存儲非結(jié)構(gòu)化的數(shù)據(jù)被證明是更加適合的。Hadoop目前也正在開發(fā)支持對象存儲的組件Ozone(新一代分布式存儲系統(tǒng))。第二個方面:分析計(jì)算方面。大數(shù)據(jù)分析的算法會越來越復(fù)雜,對時效性也會要求越來越高,Hadoop中的分布式計(jì)算框架MapReduce并不能很好的支持所有的算法,也不能提供實(shí)時的計(jì)算,因此誕生了迭代計(jì)算框架(HaLoop)、圖計(jì)算框架(Tez)和流式計(jì)算框架(Storm),以及Spark等等。在未來大數(shù)據(jù)的應(yīng)用中,這些計(jì)算模式的混合使用將成為趨勢。第三個方面:安全性。在Hadoop誕生之初并沒有關(guān)注安全性,默認(rèn)集群中的機(jī)器都是可靠的,導(dǎo)致存在惡意用戶偽裝成真正的用戶或者服務(wù)器入侵到Hadoop集群,惡意的提交作業(yè),篡改HDFS上的數(shù)據(jù)。后來才加入了Kerberos認(rèn)證機(jī)制,保證了集群的安全。未來Hadoop也會更加注重集群數(shù)據(jù)的安全性。Hadoop在企業(yè)中的一種典型應(yīng)用架構(gòu)2.3Hadoop的特點(diǎn)、應(yīng)用與發(fā)展趨勢2.3.2Hadoop的應(yīng)用與發(fā)展趨勢2.4Hadoop集群搭建和安裝配置2.4.1Hadoop集群搭建概述1.物理集群物理集群,就是一組通過網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī),集群中的每一臺計(jì)算機(jī)又稱作一個節(jié)點(diǎn)。所謂搭建Hadoop分布式集群,就是在一組通過網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī)組成的物理集群上安裝部署Hadoop相關(guān)的軟件,然后整體對外提供大數(shù)據(jù)存儲和分析等相關(guān)服務(wù)。所以,Hadoop分布式集群環(huán)境的搭建首先要解決物理集群的搭建,然后再考慮Hadoop相關(guān)軟件的安裝。Hadoop物理集群的搭建可以選擇以下幾種方式:1)租賃硬件設(shè)備。2)使用云服務(wù)。3)搭建自己專屬的集群。為了降低集群搭建的復(fù)雜度,一般作為學(xué)習(xí)用的集群多采用在一臺計(jì)算機(jī)上搭建虛擬機(jī)的方式來部署分布式集群環(huán)境。2.虛擬機(jī)的安裝部署虛擬機(jī)的搭建實(shí)際上就是安裝虛擬化的軟件。即在計(jì)算機(jī)上通過安裝一個虛擬化軟件就可以實(shí)現(xiàn)虛擬機(jī)的搭建。常見的虛擬化軟件有VMwareWorkstation和Virtualbox,簡單使用的話,兩者其實(shí)差別不大。我們選擇Virtualbox,Virtualbox號稱是最強(qiáng)的免費(fèi)虛擬機(jī)軟件,它不僅具有豐富的特色,而且性能也很優(yōu)異。在Virtualbox中可以直接通過虛擬機(jī)克隆的方式來進(jìn)行物理集群的搭建。2.4Hadoop集群搭建和安裝配置2.4.1Hadoop集群搭建概述3.Hadoop的運(yùn)行模式Hadoop運(yùn)行模式常見的有3種,分別是單機(jī)模式、偽分布式模式和完全分布式模式。

單機(jī)模式:這是Hadoop的默認(rèn)模式,這種模式在使用時只需要下載解壓Hadoop安裝包并配置環(huán)境變量即可,而不需要進(jìn)行其他Hadoop相關(guān)配置文件的配置。一般情況下,單機(jī)模式不被選擇使用。

偽分布式模式:在偽分布式模式下,所有的守護(hù)進(jìn)程都運(yùn)行在一個節(jié)點(diǎn)上(也就是運(yùn)行在一臺計(jì)算機(jī)上),由于是在一個節(jié)點(diǎn)上模擬一個具有Hadoop完整功能的微型集群,所以被稱為偽分布式集群,由于是在一個節(jié)點(diǎn)上部署所以也叫做單節(jié)點(diǎn)集群。

完全分布式模式:在完全分布式模式下,Hadoop守護(hù)進(jìn)程會運(yùn)行在多個節(jié)點(diǎn)上,形成一個真正意義上的分布式集群。接下來要搭建的就是通過虛擬機(jī)克隆的三個Linux服務(wù)器來構(gòu)建的分布式模式Hadoop集群。2.4.1Hadoop安裝之前的預(yù)備知識(一)Linux的選擇(1)選擇哪個Linux發(fā)行版?在Linux系統(tǒng)各個發(fā)行版中,CentOS系統(tǒng)和Ubuntu系統(tǒng)在服務(wù)端和桌面端使用占比最高,網(wǎng)絡(luò)上資料最是齊全,所以建議使用CentOS或Ubuntu。在學(xué)習(xí)Hadoop方面,兩個系統(tǒng)沒有多大區(qū)別,可以依據(jù)具體情況與自身愛好進(jìn)行選擇。(2)選擇32位還是64位?如果電腦比較老或者內(nèi)存小于2G,那么建議選擇32位系統(tǒng)版本的Linux。如果內(nèi)存大于4G,那么建議選擇64位系統(tǒng)版本的Linux。2.4.1Hadoop安裝之前的預(yù)備知識(二)系統(tǒng)安裝方式:選擇虛擬機(jī)安裝還是雙系統(tǒng)安裝建議電腦比較新或者配置內(nèi)存4G以上的電腦可以選擇虛擬機(jī)安裝。電腦較舊或配置內(nèi)存小于等于4G的電腦強(qiáng)烈建議選擇雙系統(tǒng)安裝,否則,在配置較低的計(jì)算機(jī)上運(yùn)行LInux虛擬機(jī),系統(tǒng)運(yùn)行速度會非常慢。鑒于目前教師和學(xué)生的計(jì)算機(jī)硬件配置一般不高,建議在實(shí)踐教學(xué)中采用雙系統(tǒng)安裝,確保系統(tǒng)運(yùn)行速度。2.4.1Hadoop安裝之前的預(yù)備知識(三)Hadoop安裝方式單機(jī)模式:Hadoop默認(rèn)模式為非分布式模式(本地模式),無需進(jìn)行其他配置即可運(yùn)行。非分布式即單Java進(jìn)程,方便進(jìn)行調(diào)試。偽分布式模式:Hadoop可以在單節(jié)點(diǎn)上以偽分布式的方式運(yùn)行,Hadoop進(jìn)程以分離的Java進(jìn)程來運(yùn)行,節(jié)點(diǎn)既作為NameNode也作為DataNode,同時,讀取的是HDFS中的文件。分布式模式:使用多個節(jié)點(diǎn)構(gòu)成集群環(huán)境來運(yùn)行Hadoop。2.4.2安裝Linux虛擬機(jī)一、材料和工具1.下載VirtualBox虛擬機(jī)軟件2.下載安裝Linux系統(tǒng)的映像文件二、步驟(一)確認(rèn)系統(tǒng)版本如果選擇的系統(tǒng)是64位安裝,那么在安裝虛擬機(jī)前,我們還要進(jìn)入BIOS開啟CPU的虛擬化2.4.2安裝Linux虛擬機(jī)(二)安裝前的準(zhǔn)備1.打開VirtualBox,點(diǎn)擊“創(chuàng)建”按鈕,創(chuàng)建一個虛擬機(jī)2.給虛擬機(jī)命名,選擇操作系統(tǒng),版本3.選擇內(nèi)存大小,這里設(shè)置的1024M4.創(chuàng)建虛擬硬盤5.選擇虛擬硬盤文件類型VDI6.虛擬硬盤選擇動態(tài)分配7.選擇文件存儲的位置和容量大小8.點(diǎn)擊創(chuàng)建2.4.2安裝Linux虛擬機(jī)(三)安裝Linux系統(tǒng)(以Ubuntu為例)2.4.3安裝雙操作系統(tǒng)第一步:制作安裝U盤具體可參考百度經(jīng)驗(yàn)文章/article/59703552e0a6e18fc007409f.html第二步:雙系統(tǒng)安裝具體可參考百度經(jīng)驗(yàn)文章/article/dca1fa6fa3b905f1a44052bd.html安裝后Window和Linux系統(tǒng)都可以用,默認(rèn)windows優(yōu)先啟動可以在電腦啟動時,選擇進(jìn)入Linux系統(tǒng)而不是Windows系統(tǒng)2.4.4Hadoop的安裝與使用(單機(jī)/偽分布式)Hadoop基本安裝配置主要包括以下幾個步驟:創(chuàng)建Hadoop用戶SSH登錄權(quán)限設(shè)置安裝Java環(huán)境單機(jī)安裝配置偽分布式安裝配置創(chuàng)建Hadoop用戶如果安裝Linux系統(tǒng)的時候不是用的“hadoop”用戶,那么需要增加一個名為hadoop的用戶(示例為Ubuntu系統(tǒng)代碼)首先按

ctrl+alt+t

打開終端窗口,輸入如下命令創(chuàng)建新用戶:$sudouseradd–mhadoop–s/bin/bash上面這條命令創(chuàng)建了可以登陸的hadoop用戶,并使用/bin/bash作為shell接著使用如下命令設(shè)置密碼,可簡單設(shè)置為hadoop,按提示輸入兩次密碼:$sudopasswdhadoop可為hadoop用戶增加管理員權(quán)限,方便部署,避免一些對新手來說比較棘手的權(quán)限問題:$sudoadduserhadoopsudoSSH登錄權(quán)限設(shè)置配置SSH的原因:Hadoop名稱節(jié)點(diǎn)(NameNode)需要啟動集群中所有機(jī)器的Hadoop守護(hù)進(jìn)程,這個過程需要通過SSH登錄來實(shí)現(xiàn)。Hadoop并沒有提供SSH輸入密碼登錄的形式,因此,為了能夠順利登錄每臺機(jī)器,需要將所有機(jī)器配置為名稱節(jié)點(diǎn)可以無密碼登錄它們SSH是什么?SSH

SecureShell

的縮寫,是建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。SSH是目前較可靠、專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。SSH最初是UNIX系統(tǒng)上的一個程序,后來又迅速擴(kuò)展到其他操作平臺。SSH是由客戶端和服務(wù)端的軟件組成,服務(wù)端是一個守護(hù)進(jìn)程(daemon),它在后臺運(yùn)行并響應(yīng)來自客戶端的連接請求,客戶端包含ssh程序以及像scp(遠(yuǎn)程拷貝)、slogin(遠(yuǎn)程登陸)、sftp(安全文件傳輸)等其他的應(yīng)用程序安裝Java環(huán)境Java環(huán)境可選擇Oracle的JDK,或是OpenJDK可以在Linux系統(tǒng)中直接通過命令安裝OpenJDK7$sudoapt-getinstallopenjdk-7-jreopenjdk-7-jdk還需要配置一下JAVA_HOME環(huán)境變量

具體請參考網(wǎng)絡(luò)教程:/blog/install-hadoop/單機(jī)安裝配置Hadoop2可以到官網(wǎng)下載,需要下載

hadoop-2.x.y.tar.gz

這個格式的文件,這是編譯好的,另一個包含src的則是Hadoop源代碼,需要進(jìn)行編譯才可使用Hadoop2安裝文件的下載如果讀者是使用虛擬機(jī)方式安裝Linux系統(tǒng)的用戶,請用虛擬機(jī)中的Linux系統(tǒng)自帶瀏覽器訪問本指南,再點(diǎn)擊下載地址,才能把hadoop文件下載虛擬機(jī)Linux系統(tǒng)中。請不要使用Windows系統(tǒng)下的瀏覽器下載,文件會被下載到Windows系統(tǒng)中,虛擬機(jī)中的Linux系統(tǒng)無法訪問外部Windows系統(tǒng)的文件,造成不必要的麻煩。如果讀者是使用雙系統(tǒng)方式安裝Linux系統(tǒng)的用戶,請進(jìn)去Linux系統(tǒng),在Linux系統(tǒng)打開瀏覽器,再點(diǎn)擊下載單機(jī)安裝配置選擇將Hadoop安裝至/usr/local/中$sudotar-zxf~/下載/hadoop-2.6.0.tar.gz-C/usr/local#解壓到/usr/local中$cd/usr/local/$sudomv./hadoop-2.6.0/./hadoop#將文件夾名改為hadoop$sudochown-Rhadoop:hadoop./hadoop#修改文件權(quán)限Hadoop解壓后即可使用。輸入如下命令來檢查Hadoop是否可用,成功則會顯示Hadoop版本信息:$cd/usr/local/hadoop$./bin/hadoopversionHadoop默認(rèn)模式為非分布式模式(本地模式),無需進(jìn)行其他配置即可運(yùn)行。偽分布式安裝配置Hadoop可以在單節(jié)點(diǎn)上以偽分布式的方式運(yùn)行,Hadoop進(jìn)程以分離的Java進(jìn)程來運(yùn)行,節(jié)點(diǎn)既作為NameNode也作為DataNode,同時,讀取的是HDFS中的文件Hadoop的配置文件位于/usr/local/hadoop/etc/hadoop/中,偽分布式需要修改2個配置文件

core-site.xml

hdfs-site.xml

Hadoop的配置文件是xml格式,每個配置以聲明property的name和value的方式來實(shí)現(xiàn)偽分布式安裝配置實(shí)驗(yàn)步驟:修改配置文件:core-site.xml,hdfs-site.xml,mapred-site.xml初始化文件系統(tǒng)hadoopnamenode-format啟動所有進(jìn)程start-all.sh訪問web界面,查看Hadoop信息運(yùn)行實(shí)例偽分布式安裝配置修改配置文件

core-site.xml

<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>name為fs.defaultFS的值,表示hdfs路徑的邏輯名稱hadoop.tmp.dir表示存放臨時數(shù)據(jù)的目錄,即包括NameNode的數(shù)據(jù),也包括DataNode的數(shù)據(jù)。該路徑任意指定,只要實(shí)際存在該文件夾即可

偽分布式安裝配置修改配置文件

hdfs-site.xml<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>dfs.replication表示副本的數(shù)量,偽分布式要設(shè)置為1.dir表示本地磁盤目錄,是存儲fsimage文件的地方dfs.datanode.data.dir表示本地磁盤目錄,HDFS數(shù)據(jù)存放block的地方偽分布式安裝配置關(guān)于三種Shell命令方式的區(qū)別:1.hadoopfs2.hadoopdfs3.hdfsdfshadoopfs適用于任何不同的文件系統(tǒng),比如本地文件系統(tǒng)和HDFS文件系統(tǒng)hadoopdfs只能適用于HDFS文件系統(tǒng)hdfsdfs跟hadoopdfs的命令作用一樣,也只能適用于HDFS文件系統(tǒng)2.4.1集群節(jié)點(diǎn)類型2.4.2集群規(guī)模2.4.3集群硬件配置2.4.4集群網(wǎng)絡(luò)拓?fù)?.4.5集群的建立與安裝2.4.6集群基準(zhǔn)測試2.4.7在云計(jì)算環(huán)境中使用Hadoop2.4Hadoop集群的部署與使用2.4.1Hadoop集群中有哪些節(jié)點(diǎn)類型一個基本的Hadoop集群中的節(jié)點(diǎn)主要有NameNode:負(fù)責(zé)協(xié)調(diào)集群中的數(shù)據(jù)存儲DataNode:存儲被拆分的數(shù)據(jù)塊JobTracker:協(xié)調(diào)數(shù)據(jù)計(jì)算任務(wù)TaskTracker:負(fù)責(zé)執(zhí)行由JobTracker指派的任務(wù)SecondaryNameNode:幫助NameNode收集文件系統(tǒng)運(yùn)行的狀態(tài)信息2.4.1Hadoop集群中有哪些節(jié)點(diǎn)類型2.4.2集群硬件配置在集群中,大部分的機(jī)器設(shè)備是作為Datanode和TaskTracker工作的Datanode/TaskTracker的硬件規(guī)格可以采用以下方案:4個磁盤驅(qū)動器(單盤1-2T),支持JBOD(JustaBunchOfDisks,磁盤簇)2個4核CPU,至少2-2.5GHz16-24GB內(nèi)存千兆以太網(wǎng)2.4.2集群硬件配置NameNode提供整個HDFS文件系統(tǒng)的NameSpace(命名空間)管理、塊管理等所有服務(wù),因此需要更多的RAM,與集群中的數(shù)據(jù)塊數(shù)量相對應(yīng),并且需要優(yōu)化RAM的內(nèi)存通道帶寬,采用雙通道或三通道以上內(nèi)存。硬件規(guī)格可以采用以下方案:8-12個磁盤驅(qū)動器(單盤1-2T)2個4核/8核CPU16-72GB內(nèi)存千兆/萬兆以太網(wǎng)NameNode通常采用RAID來提高可靠性,以防止單個驅(qū)動器出現(xiàn)故障SecondaryNameNode在小型集群中可以和NameNode共用一臺機(jī)器,較大的群集可以采用與NameNode相同的硬件2.4.3集群規(guī)模要多大

Hadoop集群規(guī)模可大可小,初始時,可以從一個較小規(guī)模的集群開始,比如包含10個節(jié)點(diǎn),然后,規(guī)模隨著存儲器和計(jì)算需求的擴(kuò)大而擴(kuò)大如果數(shù)據(jù)每周增大1TB,并且有三個HDFS副本,然后每周需要一個額外的3TB作為原始數(shù)據(jù)存儲。要允許一些中間文件和日志(假定30%)的空間,由此,可以算出每周大約需要增加一臺新機(jī)器。存儲兩年數(shù)據(jù)的集群,大約需要100臺機(jī)器對于一個小的集群,名稱節(jié)點(diǎn)(NameNode)和JobTracker運(yùn)行在單個節(jié)點(diǎn)上,通常是可以接受的。但是,隨著集群和存儲在HDFS中的文件數(shù)量的增加,名稱節(jié)點(diǎn)需要更多的主存,這時,名稱節(jié)點(diǎn)和JobTracker就需要運(yùn)行在不同的節(jié)點(diǎn)上第二名稱節(jié)點(diǎn)(SecondaryNameNode)會和名稱節(jié)點(diǎn)可以運(yùn)行在相同的機(jī)器上,但是,由于第二名稱節(jié)點(diǎn)和名稱節(jié)點(diǎn)幾乎具有相同的主存需求,因此,二者最好運(yùn)行在不同節(jié)點(diǎn)上2.4.4集群網(wǎng)絡(luò)拓?fù)淦胀ǖ腍adoop集群結(jié)構(gòu)由一個兩階網(wǎng)絡(luò)構(gòu)成每個機(jī)架(Rack)有30-40個服務(wù)器,配置一個1GB的交換機(jī),并向上傳輸?shù)揭粋€核心交換機(jī)或者路由器(1GB或以上)在相同的機(jī)架中的節(jié)點(diǎn)間的帶寬的總和,要大于不同機(jī)架間的節(jié)點(diǎn)間的帶寬總和2.4.5集群的建立與安裝采購好相關(guān)的硬件設(shè)備后,就可以把硬件裝入機(jī)架,安裝并運(yùn)行Hadoop安裝Hadoop有多種方法:(1)手動安裝(2)自動化安裝為了緩解安裝和維護(hù)每個節(jié)點(diǎn)上相同的軟件的負(fù)擔(dān),可以使用自動化方法實(shí)現(xiàn)完全自動化安裝自動化安裝部署工具,會通過記錄在安裝過程中對于各個選項(xiàng)的回答來完成自動化安裝過程

2.4.6Hadoop集群基準(zhǔn)測試如何判斷一個Hadoop集群是否已經(jīng)正確安裝?可以運(yùn)行基準(zhǔn)測試Hadoop自帶有一些基準(zhǔn)測試程序,被打包在測試程序JAR文件中用TestDFSIO基準(zhǔn)測試,來測試HDFS的IO性能用排序測試MapReduce:Hadoop自帶一個部分排序的程序,這個測試過程的整個數(shù)據(jù)集都會通過洗牌(Shuffle)傳輸至Reducer,可以充分測試MapReduce的性能2.4.7在云計(jì)算環(huán)境中使用HadoopHadoop不僅可以運(yùn)行在企業(yè)內(nèi)部的集群中,也可以運(yùn)行在云計(jì)算環(huán)境中可以在AmazonEC2中運(yùn)行Hadoop。EC2是一個計(jì)算服務(wù),允許客戶租用計(jì)算機(jī)(實(shí)例),來運(yùn)行自己的應(yīng)用。客戶可以按需運(yùn)行或終止實(shí)例,并且按照實(shí)際使用情況來付費(fèi)Hadoop自帶有一套腳本,用于在EC2上面運(yùn)行Hadoop。AWS也提供了預(yù)先配置好的運(yùn)行在Linux上的Hadoop鏡像本章小結(jié)Hadoop被視為事實(shí)上的大數(shù)據(jù)處理標(biāo)準(zhǔn),本章介紹了Hadoop的發(fā)展歷程,并闡述了Hadoop的高可靠性、高效性、高可擴(kuò)展性、高容錯性、成本低、運(yùn)行在Linux平臺上、支持多種編程語言等特性Hadoop目前已經(jīng)在各個領(lǐng)域得到了廣泛的應(yīng)用,雅虎、Facebook、百度、淘寶、網(wǎng)易等公司都建立了自己的Hadoop集群經(jīng)過多年發(fā)展,Hadoop項(xiàng)目已經(jīng)變得非常成熟和完善,包括Common、Avro、Zookeeper、HDFS、MapReduce、HBase、Hive、Chukwa、Pig等子項(xiàng)目,其中,HDFS和MapReduce是Hadoop的兩大核心組件本章最后介紹了如何在Linux系統(tǒng)下完成Hadoop的安裝和配置,這個部分是后續(xù)章節(jié)實(shí)踐環(huán)節(jié)的基礎(chǔ)謝謝!第3章分布式文件系統(tǒng)HDFS

提綱3.1分布式文件系統(tǒng)3.2HDFS簡介及相關(guān)概念3.3HDFS體系結(jié)構(gòu)3.4HDFS存儲原理3.5HDFS數(shù)據(jù)讀寫過程3.6訪問HDFS的方式3.7 HDFS編程實(shí)踐3.1 分布式文件系統(tǒng)3.1.1 計(jì)算機(jī)集群結(jié)構(gòu)3.1.2 分布式

溫馨提示

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

最新文檔

評論

0/150

提交評論