999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

對大數(shù)據(jù)處理框架的認識和實踐

2020-07-23 07:08:09金琦
中國信息技術(shù)教育 2020年14期

金琦

編者按:八年前,聯(lián)合國在發(fā)布的《大數(shù)據(jù)促發(fā)展:挑戰(zhàn)與機遇》白皮書中指出:“大數(shù)據(jù)時代已經(jīng)到來,大數(shù)據(jù)的出現(xiàn)將會對社會各個領(lǐng)域產(chǎn)生深刻影響。”隨著云計算、物聯(lián)網(wǎng)、移動互聯(lián)、人工智能等信息技術(shù)的高速發(fā)展,2020年全球數(shù)據(jù)總量已經(jīng)超過40ZB,大數(shù)據(jù)技術(shù)的確已經(jīng)滲透到我們生活的各個方面,大數(shù)據(jù)正在實現(xiàn)人類工作、生活與思維的大變革,其“威力”也強烈地沖擊著教育系統(tǒng),正在成為推動教育系統(tǒng)創(chuàng)新與變革的顛覆性力量。接下來的兩期我們就針對大數(shù)據(jù)這一話題從理論和實際操作兩個方面展開研討。

大數(shù)據(jù)具有大容量(Volume)、多形式(Variety)、高速率(Velocity)、低價值密度(Value)的4V特征。大容量指數(shù)據(jù)的體量非常巨大,傳統(tǒng)處理數(shù)據(jù)的集中存儲、集中計算的方式已經(jīng)很難處理這么大的數(shù)據(jù)量。多形式是指數(shù)據(jù)呈現(xiàn)的方式多種多樣,包括常見的文本形式以及圖片、視頻等。高速率是指數(shù)據(jù)以非常高的速率產(chǎn)生,如各種傳感器、實時直播、監(jiān)控及大量的物聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)。低價值密度是指單條數(shù)據(jù)并不具有太多價值,但是通過處理一條條數(shù)據(jù)就能從大量低價值數(shù)據(jù)中獲取高價值的信息。顯然,具有以上特征的數(shù)據(jù)流都需要復(fù)雜的數(shù)據(jù)處理系統(tǒng)來處理,為此谷歌在2003—2006年陸續(xù)發(fā)表了主題為GFS(Google File System)、MapReduce、BigTable的三篇技術(shù)論文,正是這三篇論文奠定了當下大數(shù)據(jù)算法的基石,成為大數(shù)據(jù)發(fā)展最重要的推動因素。

● Hadoop架構(gòu)概述

如果你在百度查詢“大數(shù)據(jù)”,會發(fā)現(xiàn)“大數(shù)據(jù)”和“Hadoop”會成對出現(xiàn),乃至很多人認為大數(shù)據(jù)就是Hadoop,這里特別要指出,大數(shù)據(jù)代表的是一種理念、一種問題解決思路、一系列處理方式的集合。大數(shù)據(jù)也并不特指Hadoop,Hadoop由Apache公司開發(fā),是應(yīng)用Google的上述論文的核心技術(shù),采用Java語言進行的開源實現(xiàn)。它以分布式文件系統(tǒng)HDFS(Hadoop Distributed FileSystem)和MapReduce計算框架為核心,支持海量結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)的存儲處理,以及一些支持Hadoop的其他子項目的通用工具組成的分布式計算生態(tài)系統(tǒng)。下頁圖1描述了目前使用最廣的Hadoop 2.0生態(tài)系統(tǒng)的構(gòu)成,其中包含Hadoop的核心組件和常用工具。

初學者一看到圖中這么多名詞,可能就云里霧里了,我們先撥開這些名詞上的浮云,結(jié)合谷歌三篇論文主題,詳細敘述與之相關(guān)的三個主要組件:HDFS、MapReduce、HBase。

● Hadoop主要組件

1.HDFS分布式文件系統(tǒng)

我們知道大數(shù)據(jù)文件是不斷產(chǎn)生的,所以存儲空間占用非常大,因此,我們就需要將數(shù)據(jù)分散存儲在多臺獨立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲系統(tǒng)采用集中的存儲服務(wù)器存放所有數(shù)據(jù),存儲服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規(guī)模存儲應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲系統(tǒng)采用可擴展的系統(tǒng)結(jié)構(gòu),利用多臺存儲服務(wù)器分擔存儲負荷,利用位置服務(wù)器定位存儲信息,不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴展。谷歌論文Google File System(GFS)對“大數(shù)據(jù)文件怎么存放的問題”進行了詳細闡述,而Apache Hadoop的HDFS就是對這篇論文的開源實現(xiàn)。DFS是Hadoop項目的核心子項目,是分布式計算中數(shù)據(jù)存儲管理的基礎(chǔ),是基于流式數(shù)據(jù)訪問和存儲管理超大文件的需求而開發(fā)的分布式文件系統(tǒng)。其中“流式數(shù)據(jù)訪問”是指讀取數(shù)據(jù)文件就像打開水閥門一樣,可以不停地去讀取,因為HDFS上存儲的數(shù)據(jù)集通常是由數(shù)據(jù)源生成或者從數(shù)據(jù)源收集而來,并會長時間在此數(shù)據(jù)集上進行各種分析,所以HDFS相對數(shù)據(jù)的訪問時間更重視數(shù)據(jù)的吞吐量。“存儲管理超大文件”更是HDFS的職責所在,現(xiàn)在很多學校的服務(wù)器網(wǎng)絡(luò)日志、物聯(lián)網(wǎng)傳感器群日志都是不間斷記錄,隨著未來技術(shù)水平的發(fā)展,其數(shù)據(jù)文件大小可以達到TB、PB級別。HDFS可以部署在廉價的服務(wù)器集群上,滿足海量數(shù)據(jù)集的應(yīng)用程序。HDFS具有很好的擴展性,能夠根據(jù)學校實際應(yīng)用需要隨時添加廉價服務(wù)器設(shè)備節(jié)點。HDFS是典型的主從架構(gòu),具有很好的容錯性,由一個主節(jié)點(NameNode)、多個從節(jié)點(Datanode)組成。主節(jié)點用于管理系統(tǒng)命名空間(NameSpace)、調(diào)度客戶端(client)文件操作及存儲任務(wù)管理,多個從節(jié)點提供真實文件數(shù)據(jù)的物理支持。客戶端通過主節(jié)點Namenode從多個Datanode數(shù)據(jù)節(jié)點中獲取數(shù)據(jù)塊(Block),Datanode數(shù)據(jù)節(jié)點則自發(fā)提交獲取到的文件的Namenode信息,用于存儲文件的基本信息。Namenode對Datanode的write、read等操作一律通過元數(shù)據(jù)信息實現(xiàn)查找。為防止Namenode數(shù)據(jù)缺失、無效,HDFS提供了Namenode的備份節(jié)點即SecondaryNameNode,類似于Namenode的克隆,以備不時之需。數(shù)據(jù)以數(shù)據(jù)塊的形式進行存儲,每個數(shù)據(jù)塊可以在多個Datanode上存儲多個副本,當單個節(jié)點出現(xiàn)問題時,相對應(yīng)的副本數(shù)據(jù)能替換問題節(jié)點數(shù)據(jù),以提高數(shù)據(jù)安全性。HDFS能保證各個節(jié)點的數(shù)據(jù)存儲,并在各節(jié)點之間實現(xiàn)高速傳輸,HDFS客戶端與NameNode和Datanode通信過程如下頁圖2所示,我們可以從中體驗到HDFS的高效性和安全性。

2.MapReduce分布式計算框架

講完用HDFS分布式存儲數(shù)據(jù),接下來我們就來描述如何用分布式來計算這些數(shù)據(jù),谷歌論文MapReduce:Simplifified Data Processing on Large Clusters對“大數(shù)據(jù)怎么計算”進行了詳細闡述,而Hadoop的MapReduce就是對這篇論文的開源實現(xiàn)。MapReduce是一種編程模型,應(yīng)用在海量數(shù)據(jù)的并行計算中。MapReduce采用分化治理的方法,其中有一個主節(jié)點用于任務(wù)的管理,各個分節(jié)點根據(jù)主節(jié)點的任務(wù)分配進行節(jié)點運算,各個分節(jié)點再把運算的結(jié)果匯總給主節(jié)點,因此,MapReduce可認為是任務(wù)的分解與匯總,也就是分為Map(映射)和Reduce(化簡)兩步。經(jīng)過Map和Reduce的處理,最后輸出匯總結(jié)果。MapReduce是一種編程模型,主要包括Mapper和Reducer兩個抽象類,是一個基于開源的并行計算框架。Mapper用于將切分為塊的原始數(shù)據(jù)進行處理;Reducer用于匯總歸約Mapper處理結(jié)果,并輸出終值。MapReduce計算框架中Mapper可以處理格式的數(shù)據(jù)流,形成一系列的形式的輸出,這些輸出經(jīng)過相應(yīng)處理,形成形式的中間結(jié)果;再將中間結(jié)果作為Reducer的輸入,Reducer將key值相等的數(shù)據(jù)做進一步處理,最終形成形式的結(jié)果數(shù)據(jù),將結(jié)果數(shù)據(jù)寫入HDFS中。我們用Hadoop環(huán)境中運行自帶的WordCount程序來驗證Hadoop處理步驟。WordCount程序接收一個文本文件作為輸入,并計算該文件中每個單詞的出現(xiàn)次數(shù)。圖3展示了WordCount程序使用map和reduce任務(wù)處理數(shù)據(jù)并排序(Shuffle and Sort),最后將輸出結(jié)果存入HDFS的全流程(文末有完整的實驗過程)。

3.HBase分布式存儲系統(tǒng)

谷歌論文Bigtable對“大數(shù)據(jù)文件怎樣適應(yīng)快速查詢”進行了詳細闡述。而HBase正是對Bigtable的開源實現(xiàn),它非常適合存儲大數(shù)據(jù)環(huán)境下不斷產(chǎn)生的非結(jié)構(gòu)化的數(shù)據(jù)(不方便用數(shù)據(jù)庫二維邏輯表來表示的數(shù)據(jù),如圖片、視頻)和半結(jié)構(gòu)化的數(shù)據(jù)(結(jié)構(gòu)和內(nèi)容合在一起的數(shù)據(jù),如學校上網(wǎng)日志、一卡通數(shù)據(jù)),是面向列的分布式數(shù)據(jù)庫,這一點完全不同于其他基于行的關(guān)系數(shù)據(jù)庫。它依賴于HDFS和ZooKeeper(一個用來進行分布式協(xié)調(diào)的服務(wù),這些服務(wù)包括配置服務(wù)、維護元信息和命名空間服務(wù))。HBase將所有數(shù)據(jù)以文件的形式進行存儲,文件采用二進制編碼非常適合快速檢索,同時支持MapReduce的批量式計算和點查詢(隨機讀取),具有高性能、高可靠性、高可伸縮性和實時讀寫的特點。

HBase提供了Java API的訪問接口,基于這些API接口,可以開發(fā)實現(xiàn)上網(wǎng)日志和一卡通數(shù)據(jù)的高速查詢和讀寫模塊。用數(shù)據(jù)讀寫查詢模塊,將這些非結(jié)構(gòu)化數(shù)據(jù)存入HBase數(shù)據(jù)庫中,通過該模塊還可以實現(xiàn)快速查詢功能。

非結(jié)構(gòu)化存儲系統(tǒng)需要通過ZooKeeper來實現(xiàn)HBase中數(shù)據(jù)讀寫與HbaseMaster之間的協(xié)調(diào)服務(wù)。在HBase數(shù)據(jù)庫的底層是分布式文件系統(tǒng)HDFS,通過ZooKeeper來保證各個DataNode節(jié)點之間的協(xié)同工作,以確保結(jié)果的正確無誤。當一個數(shù)據(jù)表傳入后都要通過行鍵按照一定的范圍分割成多個子表,并為每個子表的列族創(chuàng)建一個Store實例。這些非結(jié)構(gòu)化數(shù)據(jù)首先寫入Store的MemStore中,當MemStore存滿后會Flush成一個StoreFile,一個Store中可以包含0到多個StoreFile,每個StoreFile中都有一個HFile負責存放實際文件。當StoreFile的大小達到一定閾值后,會自動觸發(fā)合并操作,多個StoreFile會合并成為一個StoreFile,同時發(fā)生版本合并和數(shù)據(jù)刪除。StoreFile達到一定大小后觸發(fā)Split操作,當前的Region(分布式存儲的最小單元)會Split成為兩個Region,之前的Region下線,HMaster會把新生成的兩個Region分配到相應(yīng)的HRegionServer中去。每個HRegionServer中都會有一個HLog對象,HLog通過WAL(Write Ahead Log,預(yù)寫式日志)機制對寫入MemStore中的數(shù)據(jù)進行鏡像備份,每次用戶操作寫入Memstore的同時,也會寫一份數(shù)據(jù)到HLog文件,HLog文件定期會滾動出新,并刪除舊的文件。當HRegionServer意外終止后,HMaster就會利用HLog中的鏡像文件在其他HRegionServer節(jié)點上進行數(shù)據(jù)恢復(fù),保證整個HBase集群的正常工作,提高系統(tǒng)的可靠性。非結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)簡要架構(gòu)示意如圖4所示。

● 體驗一個Hadoop作業(yè)處理過程

前面講了Hadoop系統(tǒng)的主要概念,對于初學的讀者可能還是很難把握內(nèi)在聯(lián)系是什么,畢竟安裝一個大數(shù)據(jù)實驗環(huán)境是一個耗時費力的過程,中間會遇到各種莫名其妙的錯誤,為此讀者可到ftp://bigdata.ourschool.cn(賬戶:bigdata.密碼:hadoop)下載一個已經(jīng)搭建好Hadoop(版本號2.7.1)集群所有測試環(huán)境的虛擬機模板文件(bigdata.ovf),直接導(dǎo)入虛擬機軟件就可以體驗了,這樣在單臺模擬Hadoop集群環(huán)境進行演練后,再到多臺虛擬機或者真實的物理機環(huán)境運維系統(tǒng)和處理數(shù)據(jù),效率就會提高很多,具體操作和測試過程如下:

①安裝虛擬機軟件,常見的VMWare、VirtualBox虛擬機軟件都可以支持,以VMWare為例,打開VMWare,打開文件,選擇第一步下載的ovf模板,然后導(dǎo)入安裝即可(如上頁圖5)。

②我們在Linux客戶端啟動Hadoop,進入Hadoop安裝目錄,運行start-all.sh腳本,這樣啟動了一組Namenode、Datanode多個節(jié)點的Hadoop集群環(huán)境,我們就可以開始體驗了(如圖6)。

③Linux客戶端創(chuàng)建用echo命令創(chuàng)建一個測試數(shù)據(jù)文件example.txt,如圖7所示(當然你也可以去網(wǎng)上下載或者爬取一些大型數(shù)據(jù)用來測試)。

④然后通過Hadoop HDFS Shell操作命令Hadoop dfs-put 把example.txt文件傳送到HDFS上并創(chuàng)建一個input文件。可用Hadoop dfs -ls/命令查看hdfs系統(tǒng)上新創(chuàng)建的input文件。

⑤測試Hadoop基本功能,我們用Hadoop自帶的Hadoop-mapreduce-examples-2.7.1.jar(不同版本Hadoop自帶范例jar版本號也不同)中的wordcount程序測試統(tǒng)計單詞的個數(shù),先來體驗一下Hadoop到底是怎么運行的,運行程序執(zhí)行如下命令:“hadoop jar/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar? wordcount/input/output.”用Hadoop自帶的一個jar包中的wordcount程序,統(tǒng)計HDFS上的input數(shù)據(jù)文件的各個單詞出現(xiàn)的次數(shù),并將結(jié)果輸出output目錄。運行上述指令后,還可以看到mapreduce的計算進度,map和reduce的進度為100%表示運行處理結(jié)束(如圖8)。

⑥程序運行完以后,執(zhí)行hdfs dfs-cat/output/*,看一下一個大數(shù)據(jù)計算范例(單詞統(tǒng)計)的結(jié)果,如圖9所示。

通過對以上Hadoop作業(yè)處理過程的操作,我們對大數(shù)據(jù)處理框架的基本工作原理有了一定的體驗,雖然目前絕大多數(shù)Hadoop集群上仍舊運行MapReduce和Pig/Hive模型相關(guān)代碼,但是MapReduce也有其局限性,并不是處理海量數(shù)據(jù)的普適方法。接下來還會被其他處理框架取代(如基于內(nèi)存的開源計算框架Spark),各種框架都在不斷改進,優(yōu)化框架的性能是數(shù)據(jù)處理框架改進的一個重點方向,未來的大數(shù)據(jù)世界將會是多種技術(shù)和平臺共存的世界。相關(guān)內(nèi)容我們下期再探討,敬請期待!

主站蜘蛛池模板: 午夜国产理论| 日韩美毛片| 亚洲中文字幕97久久精品少妇| 日本午夜视频在线观看| 日韩福利在线视频| 国内精品91| 第一页亚洲| 亚洲福利视频一区二区| 97se亚洲综合在线天天| 黄色福利在线| 国产午夜不卡| 特级aaaaaaaaa毛片免费视频| 天天综合天天综合| 青青操国产| 99精品国产自在现线观看| 久久国产精品影院| 99热这里只有精品国产99| 亚洲一区二区无码视频| 成人91在线| 亚洲天堂色色人体| 深夜福利视频一区二区| 18禁高潮出水呻吟娇喘蜜芽| 51国产偷自视频区视频手机观看 | 欧美中日韩在线| 极品国产在线| 国内精品视频| 5555国产在线观看| 亚洲精品在线观看91| 57pao国产成视频免费播放| 中文字幕亚洲精品2页| 国产丝袜啪啪| 精品久久久久无码| 精品国产免费观看| 日韩高清在线观看不卡一区二区 | 亚洲国模精品一区| 91蜜芽尤物福利在线观看| aa级毛片毛片免费观看久| 无码一区中文字幕| 亚洲有无码中文网| 国产成人夜色91| 四虎影院国产| 人妻91无码色偷偷色噜噜噜| 国产69囗曝护士吞精在线视频| 中文字幕欧美成人免费| 无码一区18禁| 怡春院欧美一区二区三区免费| 日韩黄色在线| 亚洲码一区二区三区| 无码 在线 在线| 久久国产精品77777| 成人午夜视频免费看欧美| 国产精品久久久久久久伊一| 五月激情婷婷综合| 色综合激情网| 中文字幕va| www.精品国产| 老司机久久99久久精品播放| 综1合AV在线播放| 国产成+人+综合+亚洲欧美| 中文国产成人精品久久| 国产国语一级毛片在线视频| 国产精品不卡永久免费| 中文字幕欧美日韩| 国产门事件在线| 亚洲国产日韩在线观看| 成人精品免费视频| 污污网站在线观看| 国产精品私拍99pans大尺度| 亚洲第一成年人网站| 人人澡人人爽欧美一区| 国产一二三区视频| 国产在线97| 欧美在线视频不卡| 精品国产一二三区| 久久这里只精品热免费99| 欧美三級片黃色三級片黃色1| 天天躁狠狠躁| 中文无码影院| 国产在线高清一级毛片| 成人日韩视频| 97国产精品视频自在拍| 热伊人99re久久精品最新地|