摘要:大數(shù)據(jù)概念是年由首席科學(xué)家在大會(huì)上提出的。但大數(shù)據(jù)真正得到業(yè)界關(guān)注,則是其后多年的事情了。其中大數(shù)據(jù)最重要的發(fā)酵素則是年發(fā)布的和三篇論文。揭示大數(shù)據(jù)未來(lái)發(fā)展的趨勢(shì)就是人工智能。
大數(shù)據(jù)(Big Data)概念是1998年由SGI首席科學(xué)家John Masey在USENIX大會(huì)上提出的。他當(dāng)時(shí)發(fā)表了一篇名為Big Data and the Next Wave of Infrastress的論文,使用了大數(shù)據(jù)來(lái)描述數(shù)據(jù)爆炸的現(xiàn)象。但大數(shù)據(jù)真正得到業(yè)界關(guān)注,則是其后多年的事情了。其中大數(shù)據(jù)最重要的發(fā)酵素則是2003-2006年Google發(fā)布的GFS、MapReduce和BigTable三篇論文。
大數(shù)據(jù)是指海量數(shù)據(jù)或巨量數(shù)據(jù),其規(guī)模巨大到無(wú)法通過(guò)目前主流的計(jì)算機(jī)系統(tǒng)在合理時(shí)間內(nèi)獲取、存儲(chǔ)、管理、處理并提煉以幫助使用者決策。
大數(shù)據(jù)的4V特征,即Variety(多樣化)、Volume(大量化)、Velocity(快速化)、Value(價(jià)值密度低)。如下圖所示。其中,Variety表示來(lái)源多和格式多,數(shù)據(jù)可以來(lái)源于搜索引擎、社交網(wǎng)絡(luò)、通話記錄、傳感器等等,這些數(shù)據(jù)要么以結(jié)構(gòu)化形式存儲(chǔ),要么以非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ);Volume表示數(shù)據(jù)量比較大,從TB級(jí)別,躍升到PB級(jí)別。尤其是在移動(dòng)互聯(lián)時(shí)代,視頻、語(yǔ)言等非結(jié)構(gòu)化數(shù)據(jù)快速增長(zhǎng);Velocity表示數(shù)據(jù)存在時(shí)效性,需要快速處理,并得到結(jié)果出來(lái),這一點(diǎn)也是和傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)有著本質(zhì)的區(qū)別;Value表示大量不相關(guān)信息,不經(jīng)過(guò)處理則價(jià)值較低,屬于價(jià)值密度低的數(shù)據(jù)。
大數(shù)據(jù)處理流程一般的大數(shù)據(jù)處理流程都有以下幾個(gè)過(guò)程:數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理、數(shù)據(jù)展現(xiàn)。如下圖所示。
在大數(shù)據(jù)時(shí)代,由于數(shù)據(jù)種類多,數(shù)據(jù)大,從結(jié)構(gòu)化的數(shù)據(jù)到非結(jié)構(gòu)化的數(shù)據(jù),數(shù)據(jù)采集的形式也變得更加復(fù)雜而多樣。
當(dāng)存儲(chǔ)技術(shù)的發(fā)展變得步履蹣跚,趕不上數(shù)據(jù)發(fā)展的速度時(shí),分布式存儲(chǔ)成為了必然選擇,非結(jié)構(gòu)型數(shù)據(jù)也對(duì)存儲(chǔ)格式提出了新的要求。層出不窮的數(shù)據(jù)源也使得數(shù)據(jù)量產(chǎn)生了井噴似的迅猛增長(zhǎng)。此時(shí)分布式存儲(chǔ)與NoSQL的誕生回應(yīng)了這樣的需求,解決了大數(shù)據(jù)存儲(chǔ)的根本難題。
數(shù)據(jù)處理包括數(shù)據(jù)計(jì)算、分析,這部分是大數(shù)據(jù)技術(shù)的核心,本文剩余部分將詳細(xì)介紹這部分。數(shù)據(jù)展示指的是通過(guò)提供報(bào)表等可視化界面反應(yīng)目前平臺(tái)或業(yè)務(wù)運(yùn)行的各項(xiàng)指標(biāo)。
大數(shù)據(jù)的演進(jìn)提到大數(shù)據(jù)技術(shù),最基礎(chǔ)和核心的仍是大數(shù)據(jù)的分析和計(jì)算。在2017年,大數(shù)據(jù)分析和計(jì)算技術(shù)仍舊在飛速的發(fā)展,無(wú)論老勢(shì)力Hadoop還是當(dāng)紅小生Spark,亦或是人工智能,都在繼續(xù)自己的發(fā)展和迭代。
目前絕大部分傳統(tǒng)數(shù)據(jù)計(jì)算和數(shù)據(jù)分析服務(wù)均是基于批量數(shù)據(jù)處理模型:使用ETL系統(tǒng)或OLTP系統(tǒng)進(jìn)行構(gòu)造數(shù)據(jù)存儲(chǔ),在線的數(shù)據(jù)服務(wù)通過(guò)構(gòu)造SQL語(yǔ)言訪問(wèn)上述數(shù)據(jù)存儲(chǔ)并取得分析結(jié)果。這套數(shù)據(jù)處理的方法伴隨著關(guān)系型數(shù)據(jù)庫(kù)在工業(yè)界的演進(jìn)而被廣泛采用。但在大數(shù)據(jù)時(shí)代下,伴隨著越來(lái)越多的人類活動(dòng)被信息化、進(jìn)而數(shù)據(jù)化,越來(lái)越多的數(shù)據(jù)處理要求被實(shí)時(shí)化、流式化。Andrew NG揭示大數(shù)據(jù)未來(lái)發(fā)展的趨勢(shì)就是人工智能。下面將對(duì)批量計(jì)算、流式計(jì)算以及人工智能進(jìn)行詳細(xì)介紹,其中人工智能部分將在下一期中介紹。
批量計(jì)算傳統(tǒng)的批量數(shù)據(jù)處理模型通?;谌缦绿幚砟P停?/p>
1. 使用ETL系統(tǒng)或者OLTP系統(tǒng)構(gòu)造原始的數(shù)據(jù)存儲(chǔ),以提供后續(xù)的數(shù)據(jù)服務(wù)進(jìn)行數(shù)據(jù)分析和數(shù)據(jù)計(jì)算。如下圖所示,用戶裝載數(shù)據(jù),系統(tǒng)根據(jù)自己的存儲(chǔ)和計(jì)算情況,對(duì)于裝載的數(shù)據(jù)進(jìn)行索引構(gòu)建等一些列查詢優(yōu)化工作。因此,對(duì)于批量計(jì)算,數(shù)據(jù)一定需要加載到計(jì)算機(jī)系統(tǒng),后續(xù)計(jì)算系統(tǒng)才在數(shù)據(jù)加載完成后方能進(jìn)行計(jì)算。
2. 用戶或系統(tǒng)主動(dòng)發(fā)起一個(gè)計(jì)算作用并向上述數(shù)據(jù)系統(tǒng)進(jìn)行請(qǐng)求。此時(shí)計(jì)算系統(tǒng)開始調(diào)度(啟動(dòng))計(jì)算節(jié)點(diǎn)進(jìn)行大量數(shù)據(jù)計(jì)算,該過(guò)程的計(jì)算量可能巨大,耗時(shí)長(zhǎng)達(dá)數(shù)分鐘乃至數(shù)小時(shí)。同時(shí),由于數(shù)據(jù)累計(jì)的不可及時(shí)性,上述計(jì)算過(guò)程的數(shù)據(jù)一定是歷史數(shù)據(jù),無(wú)法保證數(shù)據(jù)的實(shí)時(shí)性。
3. 計(jì)算結(jié)果返回,計(jì)算作業(yè)完成后將數(shù)據(jù)以結(jié)果集形式返回用戶,或者可能由于計(jì)算結(jié)果數(shù)量巨大保存著數(shù)據(jù)計(jì)算系統(tǒng)中,用戶進(jìn)行再次數(shù)據(jù)集成到其他系統(tǒng)。一旦數(shù)據(jù)結(jié)果巨大,整體的數(shù)據(jù)集成過(guò)程漫長(zhǎng),耗時(shí)可能長(zhǎng)達(dá)數(shù)分鐘乃至數(shù)小時(shí)。
典型代表:Hadoop
Hadoop是Apache的一個(gè)開源項(xiàng)目,是可以提供開源、可靠、可擴(kuò)展的分布式計(jì)算工具。它主要包括HDFS和MapReduce兩個(gè)組件,分別用于解決大數(shù)據(jù)的存儲(chǔ)和計(jì)算。
HDFS是獨(dú)立的分布式文件系統(tǒng),為MapReduce計(jì)算框架提供存儲(chǔ)服務(wù),具有較高的容錯(cuò)性和高可用性,基于塊存儲(chǔ)以流數(shù)據(jù)模式進(jìn)行訪問(wèn),數(shù)據(jù)節(jié)點(diǎn)之間項(xiàng)目備份。默認(rèn)存儲(chǔ)塊大小為64M,用戶也可以自定義大小。
HDFS是基于主從結(jié)構(gòu)的分布式文件系統(tǒng),結(jié)構(gòu)上包括NameNode目錄管理、DataNode的數(shù)據(jù)存儲(chǔ)和Client的訪問(wèn)客戶端3部分。NameNode主要負(fù)責(zé)系統(tǒng)的命名空間、集群的配置管理以及存儲(chǔ)塊的復(fù)制;DataNode是分布式文件系統(tǒng)存儲(chǔ)的基本單元;Client為分布式文件系統(tǒng)的應(yīng)用程序。體系結(jié)構(gòu)如下圖所示。
如上圖所示,NameNode通過(guò)主從模式實(shí)現(xiàn)高可用性,但是在以前的版本,Standby只能是一個(gè)主機(jī)。為了實(shí)現(xiàn)更高的可靠性,在Hadoop3.0中可以配置超過(guò)一個(gè)的Standby的NameNode,從而保證更高的可靠型。對(duì)于數(shù)據(jù)存儲(chǔ),HDFS采用的是多副本的方式來(lái)存儲(chǔ)數(shù)據(jù),即Client將數(shù)據(jù)首先通過(guò)NameNode獲取數(shù)據(jù)將要存儲(chǔ)在哪些DataNode上,之后這些存儲(chǔ)到最新數(shù)據(jù)的DataNode將變更數(shù)據(jù)以同步或異步方式同步到其他DataNode上。但是這幾年數(shù)據(jù)規(guī)模的增加遠(yuǎn)遠(yuǎn)大于人的想象,而這些產(chǎn)生的數(shù)據(jù),必然會(huì)存在冷熱數(shù)據(jù)的區(qū)分。無(wú)論冷熱,數(shù)據(jù)對(duì)于一個(gè)公司都是核心資產(chǎn),誰(shuí)都不想數(shù)據(jù)丟失。可是對(duì)于冷數(shù)據(jù),如果采用多副本方式,會(huì)浪費(fèi)大量的存儲(chǔ)空間。在Hadoop3.0之后,采用Erasure Coding可以大大的降低數(shù)據(jù)存儲(chǔ)空間的占用。對(duì)于冷數(shù)據(jù),可以采用EC來(lái)保存,這樣才能降低存儲(chǔ)數(shù)據(jù)的花銷,而需要時(shí),還可以通過(guò)CPU計(jì)算來(lái)讀取這些數(shù)。
MapReduce是一種分布式計(jì)算框架,適用于離線大數(shù)據(jù)計(jì)算。采用函數(shù)式編程模式,利用Map和Reduce函數(shù)來(lái)實(shí)現(xiàn)復(fù)雜的并行計(jì)算,主要功能是對(duì)一個(gè)任務(wù)進(jìn)行分解,以及對(duì)結(jié)果進(jìn)行綜合匯總。其中,Map的主要功能是把一個(gè)作業(yè)任務(wù)分解成多個(gè)子任務(wù),然后發(fā)送到對(duì)應(yīng)的節(jié)點(diǎn)服務(wù)器中,接著進(jìn)行并行計(jì)算。Reduce的主要功能把并行計(jì)算得到的結(jié)果進(jìn)行歸并后得到的結(jié)果返回到中央服務(wù)器。
具體來(lái)說(shuō),MapReduce是將那些沒(méi)有經(jīng)過(guò)處理的海量數(shù)據(jù)進(jìn)行數(shù)據(jù)分片,即分解成多個(gè)小數(shù)據(jù)集;每個(gè)Map并行地處理每一個(gè)數(shù)據(jù)集中的數(shù)據(jù),然后將結(jié)果存儲(chǔ)為
不同于批量計(jì)算模型,流式計(jì)算更加強(qiáng)調(diào)計(jì)算數(shù)據(jù)流和低時(shí)延,流式計(jì)算數(shù)據(jù)處理模型如下:
1. 使用實(shí)時(shí)集成工具,將數(shù)據(jù)實(shí)時(shí)變化傳輸?shù)搅魇綌?shù)據(jù)存儲(chǔ)(即消息隊(duì)列,如RabbitMQ);此時(shí)數(shù)據(jù)的傳輸編程實(shí)時(shí)化,將長(zhǎng)時(shí)間累積大量的數(shù)據(jù)平攤到每個(gè)時(shí)間點(diǎn)不停地小批量實(shí)時(shí)傳輸,因此數(shù)據(jù)集成的時(shí)延得以保證。
2. 數(shù)據(jù)計(jì)算環(huán)節(jié)在流式和批量處理模型差距更大,由于數(shù)據(jù)集成從累計(jì)變成實(shí)時(shí),不同于批量計(jì)算等待數(shù)據(jù)集成全部就緒后才啟動(dòng)計(jì)算作業(yè),流式計(jì)算作業(yè)是一種常駐計(jì)算服務(wù),一旦啟動(dòng)將一直處于等待事件觸發(fā)的狀態(tài),一旦小批量數(shù)據(jù)進(jìn)入流式數(shù)據(jù)存儲(chǔ),流計(jì)算立刻計(jì)算并迅速得到結(jié)果。
3. 不同于批量計(jì)算結(jié)果數(shù)據(jù)需要等待數(shù)據(jù)計(jì)算結(jié)果完成后,批量將數(shù)據(jù)傳輸?shù)皆诰€系統(tǒng);流式計(jì)算作業(yè)在每次小批量數(shù)據(jù)計(jì)算后可以立刻將數(shù)據(jù)寫入在線系統(tǒng),無(wú)需等待整個(gè)數(shù)據(jù)的計(jì)算結(jié)果,可以立刻將數(shù)據(jù)結(jié)果投遞到在線系統(tǒng),進(jìn)一步做到實(shí)時(shí)計(jì)算結(jié)果的實(shí)時(shí)化展現(xiàn)。
典型代表:Spark
Spark是一個(gè)快速且通用的集群計(jì)算平臺(tái)。它包含Spark Core、Spark SQL、Spark Streaming、MLlib以及Graphx組件。如下圖所示。Spark Core
Spark SQL是處理結(jié)構(gòu)化數(shù)據(jù)的庫(kù),它支持通過(guò)SQL查詢數(shù)據(jù)。Spark Streming是實(shí)時(shí)數(shù)據(jù)流處理組件。MLlib是一個(gè)包含通用機(jī)器學(xué)習(xí)的包。GraphX是處理圖的庫(kù),并進(jìn)行圖的并行計(jì)算一樣。
Spark提出了彈性分布式數(shù)據(jù)集的概念(Resilient Distributed Dataset),簡(jiǎn)稱RDD,每個(gè)RDD都被分為多個(gè)分區(qū),這些分區(qū)運(yùn)行在集群的不同節(jié)點(diǎn)上。一般數(shù)據(jù)操作分為3個(gè)步驟:創(chuàng)建RDD、轉(zhuǎn)換已有的RDD以及調(diào)用RDD操作進(jìn)行求值。
在Spark中,計(jì)算建模為有向無(wú)環(huán)圖(DAG),其中每個(gè)頂點(diǎn)表示彈性分布式數(shù)據(jù)集(RDD),每個(gè)邊表示RDD的操作。RDD是劃分為各(內(nèi)存中或者交換到磁盤上)分區(qū)的對(duì)象集合。在DAG上,從頂點(diǎn)A到頂點(diǎn)B的邊緣E意味著RDD B是RDD A上執(zhí)行操作E的結(jié)果。有兩種操作:轉(zhuǎn)換和動(dòng)作。轉(zhuǎn)換(例如;映射、過(guò)濾器、連接)對(duì)RDD執(zhí)行操作并產(chǎn)生新的RDD。
下面介紹下Spark與Hadoop的區(qū)別:
相較于Hadoop,Spark更快,平均處理速度是Hadoop的10倍到100倍。因?yàn)镾park的數(shù)據(jù)處理工作在內(nèi)存中進(jìn)行,只在一開始將數(shù)據(jù)讀入內(nèi)存,以及將最終結(jié)果持久存儲(chǔ)時(shí)需要與存儲(chǔ)層交互。所有中間態(tài)的數(shù)據(jù)結(jié)果均存儲(chǔ)在內(nèi)存中。雖然內(nèi)存中處理方式可大幅改善性能,Spark在處理與磁盤有關(guān)的任務(wù)時(shí)速度也有很大提升,因?yàn)橥ㄟ^(guò)提前對(duì)整個(gè)任務(wù)集進(jìn)行分析可以實(shí)現(xiàn)更完善的整體式優(yōu)化。特別是在頻繁迭代的場(chǎng)景下,Hadoop需要對(duì)每個(gè)迭代之間的數(shù)據(jù)寫回磁盤,這樣就引入了大量的磁盤I/O,那么整個(gè)系統(tǒng)性能就比較低下。
Spark并沒(méi)有像Hadoop的HDFS的分布式文件系統(tǒng),但是具有更強(qiáng)的適應(yīng)能力,即可以通過(guò)HDFS獲取數(shù)據(jù),也可以通過(guò)Cassandra獲取數(shù)據(jù)。
Hadoop在設(shè)計(jì)之初更強(qiáng)調(diào)批處理;而Spark支持流處理、機(jī)器學(xué)習(xí),因此它能解決的問(wèn)題更多。
針對(duì)方向不同。Hadoop本質(zhì)是一個(gè)分布式數(shù)據(jù)的基礎(chǔ);Spark是一個(gè)數(shù)據(jù)處理工具。
總結(jié)本文主要介紹了大數(shù)據(jù)的定義、特征、大數(shù)據(jù)的一般流程,并且著重介紹了大數(shù)據(jù)技術(shù)演進(jìn)過(guò)程中的前兩步(批量計(jì)算和流計(jì)算)。對(duì)于批量計(jì)算,介紹了Hadoop的HDFS和MapReduce的重要思想。同時(shí),針對(duì)頻繁迭代計(jì)算場(chǎng)景下,由于Hadoop需要頻繁的進(jìn)行I/O操作降低了系統(tǒng)性能。人們發(fā)明了Spark,它在一般情況下將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,此外,提出了RDD和DAG思想,有效的管理數(shù)據(jù)。下一期我們將詳細(xì)介紹大數(shù)據(jù)技術(shù)演進(jìn)過(guò)程中的第3步:人工智能。
歡迎關(guān)注微信公眾號(hào):木可大大,所有文章都將同步在公眾號(hào)上。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/19748.html
摘要:云計(jì)算是什么大數(shù)據(jù)是什么云計(jì)算和大數(shù)據(jù)有什么區(qū)別云計(jì)算和大數(shù)據(jù)關(guān)聯(lián)又是什么估計(jì)很多人都不是很清楚這兩者到底代表什么。云計(jì)算和大數(shù)據(jù)的關(guān)系云計(jì)算是基礎(chǔ),沒(méi)有云計(jì)算,無(wú)法實(shí)現(xiàn)大數(shù)據(jù)存儲(chǔ)與計(jì)算。云計(jì)算是什么?大數(shù)據(jù)是什么?云計(jì)算和大數(shù)據(jù)有什么區(qū)別?云計(jì)算和大數(shù)據(jù)關(guān)聯(lián)又是什么?估計(jì)很多人都不是很清楚這兩者到底代表什么。如果要了解云計(jì)算和大數(shù)據(jù)的意思和關(guān)系,那我們就要先對(duì)這兩個(gè)詞進(jìn)行了解,分別了解兩者...
摘要:昨日,發(fā)布調(diào)查報(bào)告稱大量的大中型公司希望在未來(lái)的兩年內(nèi)能夠用上機(jī)器學(xué)習(xí)。在這些組織中,認(rèn)為大數(shù)據(jù)分析是保持競(jìng)爭(zhēng)的必需品,期望在未來(lái)的兩年內(nèi)在大數(shù)據(jù)分析中用上機(jī)器學(xué)習(xí)。對(duì)使用大數(shù)據(jù)的人來(lái)說(shuō),大數(shù)據(jù)能成為大商業(yè)。 昨日,SoftServe 發(fā)布調(diào)查報(bào)告稱大量的大中型公司希望在未來(lái)的兩年內(nèi)能夠用上機(jī)器學(xué)習(xí)。SoftServe 是全球領(lǐng)先的技術(shù)解決方案提供商,昨日發(fā)布了自己的 Big Data Sn...
摘要:大數(shù)據(jù)的應(yīng)用開發(fā)過(guò)于偏向底層,具有學(xué)習(xí)難度大,涉及技術(shù)面廣的問(wèn)題,這制約了大數(shù)據(jù)的普及。傳統(tǒng)公司通過(guò)使用,可以輕松的跨越大數(shù)據(jù)的技術(shù)鴻溝,實(shí)現(xiàn)搜索引擎級(jí)的大數(shù)據(jù)平臺(tái)性能。 大數(shù)據(jù)的應(yīng)用開發(fā)過(guò)于偏向底層,具有學(xué)習(xí)難度大,涉及技術(shù)面廣的問(wèn)題,這制約了大數(shù)據(jù)的普及?,F(xiàn)在需要一種技術(shù),把大數(shù)據(jù)開發(fā)中一些通用的,重復(fù)使用的基礎(chǔ)代碼、算法封裝為類庫(kù),降低大數(shù)據(jù)的學(xué)習(xí)門檻,降低開發(fā)難度,提高大數(shù)據(jù)項(xiàng)...
摘要:金融行業(yè)的云計(jì)算及大數(shù)據(jù)安全規(guī)則如何確立未來(lái)金融行業(yè)開放策略。醫(yī)療行業(yè)云平臺(tái)和大數(shù)據(jù)催生互聯(lián)網(wǎng)健康產(chǎn)業(yè)。房地產(chǎn)行業(yè)大數(shù)據(jù)人才缺乏。房地產(chǎn)行業(yè)對(duì)大數(shù)據(jù)應(yīng)用比較晚,但是空間廣闊。 看起來(lái)很美很熱鬧的云計(jì)算大數(shù)據(jù),在具體落地時(shí)卻不得不面對(duì)一系列這樣的現(xiàn)實(shí)問(wèn)題。正如中國(guó)電子學(xué)會(huì)副秘書長(zhǎng)林潤(rùn)華所言:產(chǎn)業(yè)界確實(shí)認(rèn)為這是大的發(fā)展方向,也是非常好的轉(zhuǎn)型機(jī)會(huì),但是用戶還抱著非常審慎的態(tài)度。金模網(wǎng)CEO羅百輝認(rèn)...
閱讀 1641·2021-11-25 09:43
閱讀 2548·2019-08-30 15:54
閱讀 3018·2019-08-30 15:53
閱讀 1158·2019-08-30 15:53
閱讀 802·2019-08-30 15:52
閱讀 2596·2019-08-26 13:36
閱讀 874·2019-08-26 12:16
閱讀 1291·2019-08-26 12:13