7招教你構(gòu)建一套成功的大數(shù)據(jù)基礎(chǔ)設(shè)施
現(xiàn)如今,大數(shù)據(jù)是許多企業(yè)IT運(yùn)營(yíng)的重要組成部分。根據(jù)IDC預(yù)測(cè),到2019年,大數(shù)據(jù)產(chǎn)值將達(dá)到1870億美元。作為分析的重要因素,大數(shù)據(jù)決定著機(jī)器和人類商業(yè)智能和決策的基礎(chǔ)。因此,無(wú)論從硬件還是軟件角度出發(fā),您面向大數(shù)據(jù)構(gòu)建的基礎(chǔ)設(shè)施都會(huì)對(duì)所支持大數(shù)據(jù)系統(tǒng)的分析與操作帶來(lái)巨大影響。
大數(shù)據(jù)概念綜述
大數(shù)據(jù)概念早在1980年,著名未來(lái)學(xué)家阿爾文·托夫勒提出的概念。2009年美國(guó)互聯(lián)網(wǎng)數(shù)據(jù)中心證實(shí)大數(shù)據(jù)時(shí)代的來(lái)臨。隨著谷歌 MapReduce和GoogleFile System (GFS)的發(fā)布,大數(shù)據(jù)不再僅用來(lái)描述大量的數(shù)據(jù),還涵蓋了處理數(shù)據(jù)的速度。目前定義:大數(shù)據(jù)(big data),或稱巨量資料,指的是所涉及的資料量規(guī)模巨大到無(wú)法透過(guò)目前主流軟件工具在合理時(shí)間內(nèi)獲取、管理、處理、并整理為幫助企業(yè)經(jīng)營(yíng)決策。
大數(shù)據(jù)目前分為四大塊:大數(shù)據(jù)技術(shù)、大數(shù)據(jù)工程、大數(shù)據(jù)科學(xué)和大數(shù)據(jù)應(yīng)用。
下面的文章中,我們將對(duì)決定大數(shù)據(jù)基礎(chǔ)設(shè)施有效性的7大因素進(jìn)行分析,有些因素的重要性是顯而易見(jiàn)的,而有些則是非常微妙的。希望可以為著手構(gòu)建大數(shù)據(jù)項(xiàng)目的您帶去一些啟示。
1. 大數(shù)據(jù)不僅是Hadoop
在普遍認(rèn)知中,大數(shù)據(jù)和Hadoop幾乎可以等同論之。但是事實(shí)上,大數(shù)據(jù)卻不僅僅是Hadoop這么簡(jiǎn)單。Hadoop是一套文件系統(tǒng)(不是一個(gè)數(shù)據(jù)庫(kù)),負(fù)責(zé)將數(shù)據(jù)傳播至成百上千個(gè)處理節(jié)點(diǎn)中。
它被用于很多大數(shù)據(jù)應(yīng)用之中,因?yàn)樽鳛橐粋€(gè)文件系統(tǒng),它能夠很好地處理非結(jié)構(gòu)化數(shù)據(jù)——甚至包括一些看起來(lái)根本不算是數(shù)據(jù)的素材。但是Hadoop作為線下數(shù)據(jù)分析的利器并不適合當(dāng)前大數(shù)據(jù)的需求。我們需要一種解決方案,一個(gè)包含了Hadoop又不限于Hadoop的方案,一個(gè)可以同時(shí)滿足線上數(shù)據(jù)分析與線下數(shù)據(jù)分析雙重功能的方案,一個(gè)可以同時(shí)滿足強(qiáng)大數(shù)據(jù)分析和運(yùn)營(yíng)需求的方案。
2. Hive與Impala將數(shù)據(jù)庫(kù)引入Hadoop
大數(shù)據(jù)世界中,還需要數(shù)據(jù)庫(kù)對(duì)應(yīng)結(jié)構(gòu)化數(shù)據(jù)部分。如果大家希望為Hadoop數(shù)據(jù)平臺(tái)加入一些秩序管理,那么Hive則是***選項(xiàng)。這是一款基礎(chǔ)性結(jié)構(gòu)工具,允許大家在非SQL Hadoop當(dāng)中執(zhí)行SQL類操作。Hive適合于長(zhǎng)時(shí)間的批處理查詢分析。
如果大家的一部分?jǐn)?shù)據(jù)能夠輕松旋轉(zhuǎn)在結(jié)構(gòu)化數(shù)據(jù)庫(kù)當(dāng)中,那么Impala則更為合適,Impala適合于實(shí)時(shí)交互式SQL查詢,還能夠直接利用您已經(jīng)開(kāi)發(fā)出的Hive命令。Hadoop、Hive與Impala皆屬于Apache項(xiàng)目,因此其全部為開(kāi)源成果——請(qǐng)隨意使用。
3. Spark用于處理大數(shù)據(jù)
截至目前,我們已經(jīng)探討了數(shù)據(jù)的存儲(chǔ)與整理。但是,我們?cè)撊绾螌?duì)數(shù)據(jù)進(jìn)行實(shí)際操作呢?這時(shí)候我們就需要一套像Spark一樣的分析與處理引擎。Spark也是屬于Apache的一個(gè)項(xiàng)目,與其他大數(shù)據(jù)平臺(tái)不同的特點(diǎn),主要如下:
1)輕量級(jí)快速處理:大數(shù)據(jù)處理中速度往往被置于***位,Spark允許傳統(tǒng)Hadoop集群中的應(yīng)用程序在內(nèi)存中以100倍的速度運(yùn)行,即使在磁盤上運(yùn)行也能快10倍。
2)易于使用:Spark支持多語(yǔ)言,允許Java、Scala、Python及R(Spark 1.4版***支持),自帶80多個(gè)高等級(jí)操作符,允許在shell中進(jìn)行交互式查詢。
3)支持復(fù)雜查詢:除了簡(jiǎn)單的map及reduce操作之外,Spark還支持filter、foreach、reduceByKey、aggregate以及SQL查詢、流式查詢等復(fù)雜查詢。
4)實(shí)時(shí)的流處理:除了處理離線數(shù)據(jù),Spark還能支持實(shí)時(shí)流計(jì)算。
5)與已存Hadoop數(shù)據(jù)整合:Spark不僅可以獨(dú)立的運(yùn)行,還可以讀取已有的任何Hadoop數(shù)據(jù)。它可以運(yùn)行在任何Hadoop數(shù)據(jù)源上,比如HBase、HDFS等。
Spark亦可用于處理存儲(chǔ)在任意位置的各類數(shù)據(jù),因?yàn)樨S富的庫(kù)選項(xiàng)使其擁有了極為廣泛的訪問(wèn)能力。另外,由于其屬于開(kāi)源項(xiàng)目,因此大家能夠隨意修改其核心內(nèi)容。
4. 在大數(shù)據(jù)基礎(chǔ)上執(zhí)行SQL操作
很多朋友可能非常熟悉SQL數(shù)據(jù)庫(kù)構(gòu)建與SQL查詢編寫工作。這方面專業(yè)知識(shí)在大數(shù)據(jù)領(lǐng)域同樣適用。Presto是一套開(kāi)源SQL查詢引擎,允許數(shù)據(jù)科學(xué)家運(yùn)用SQL查詢來(lái)查詢數(shù)據(jù)庫(kù),包括從Hive到專有商業(yè)數(shù)據(jù)庫(kù)等各類數(shù)據(jù)庫(kù)系統(tǒng)不限。像Facebook這類巨頭級(jí)企業(yè)都在利用其進(jìn)行交互查詢,因此我們基本可以將Presto視為一套理想的大規(guī)模數(shù)據(jù)集交互式查詢工具。
5.在線存儲(chǔ)同樣需要接地平臺(tái)
大數(shù)據(jù)領(lǐng)域中有一部分任務(wù),要求快速變更數(shù)據(jù)——有時(shí)需要定期添加數(shù)據(jù),有時(shí)需要對(duì)變更數(shù)據(jù)進(jìn)行分析等。無(wú)論如何,如果大家的數(shù)據(jù)擁有幾乎對(duì)等的讀取與寫入頻度,那么應(yīng)當(dāng)同時(shí)在本地與在線端保留數(shù)據(jù)副本。如果預(yù)算允許的情況下,使用固態(tài)存儲(chǔ)無(wú)疑效果更好,因?yàn)檫@能夠大大提升數(shù)據(jù)處理速度。
6. 云存儲(chǔ)也是一個(gè)理想方式
在對(duì)大規(guī)模聚合數(shù)據(jù)庫(kù)進(jìn)行分析時(shí),云存儲(chǔ)將成為最為理想的存儲(chǔ)平臺(tái)。大家可以將數(shù)據(jù)聚合后傳輸至云端,運(yùn)行分析,隨后移除實(shí)例。數(shù)據(jù)處理不會(huì)受到互聯(lián)網(wǎng)性能的影響。另外,如果大家將內(nèi)部實(shí)時(shí)分析系統(tǒng)與云端深度分析方案加以結(jié)合,則能夠***程度發(fā)揮大數(shù)據(jù)基礎(chǔ)設(shè)施的全部潛力。
7. 不要忘記可視化
分析大數(shù)據(jù)是一回事,將分析結(jié)果通過(guò)顯而易見(jiàn)的方式呈現(xiàn)給人們又是另外一回事。圖像將能很好的幫助人們客觀的理解分析結(jié)果,所以數(shù)據(jù)可視化正是實(shí)現(xiàn)這一效果的關(guān)鍵性工具。
幸運(yùn)的是,目前市面上提供多種可視化處理方案,從JavaScript庫(kù)到商業(yè)可視化軟件包再到在線服務(wù)。大家可以選擇一部分并加以嘗試,同時(shí)了解用戶的反饋意見(jiàn)以判斷其效果??偠灾梢暬菍?shí)現(xiàn)大數(shù)據(jù)分析價(jià)值的***方式。
以上7點(diǎn)意見(jiàn)希望大家可以理解并運(yùn)用到自身的大數(shù)據(jù)基礎(chǔ)設(shè)施組建過(guò)程中,期待來(lái)自您的反饋意見(jiàn)和建議。




























