李丹
摘 要:企業(yè)在大數(shù)據(jù)時(shí)代對(duì)數(shù)據(jù)分析有更高的要求。本文使用開(kāi)源大數(shù)據(jù)生態(tài)系統(tǒng),構(gòu)建了一個(gè)能夠滿足企業(yè)對(duì)數(shù)據(jù)的分析要求且整體造價(jià)不高的系統(tǒng)平臺(tái)。該平臺(tái)涵蓋從大數(shù)據(jù)采集、存儲(chǔ)、分析和利用等全部過(guò)程。
關(guān)鍵詞:大數(shù)據(jù);開(kāi)源軟件;企業(yè)系統(tǒng)平臺(tái)
一、引言
企業(yè)的信息系統(tǒng),記錄和保存著企業(yè)已經(jīng)發(fā)生的業(yè)務(wù)信息。對(duì)這些數(shù)據(jù)進(jìn)行分析,我們可以了解企業(yè)發(fā)生了什么,為什么會(huì)這樣,并可以對(duì)未來(lái)進(jìn)行預(yù)測(cè),據(jù)此采取一些干預(yù)性措施,實(shí)現(xiàn)企業(yè)遠(yuǎn)期的戰(zhàn)略目標(biāo)。大數(shù)據(jù)時(shí)代,不僅需要對(duì)企業(yè)信息系統(tǒng)中的數(shù)據(jù)進(jìn)行分析,還需要公開(kāi)收集或購(gòu)買(mǎi)一些相關(guān)領(lǐng)域的數(shù)據(jù),進(jìn)行更為全面的數(shù)據(jù)分析,才能把握住企業(yè)的未來(lái)發(fā)展方向。正因?yàn)閿?shù)據(jù)分析對(duì)企業(yè)的商業(yè)發(fā)展舉足輕重,因此大數(shù)據(jù)分析平臺(tái)成為企業(yè)重點(diǎn)關(guān)注的基礎(chǔ)設(shè)施。
本文基于開(kāi)源軟件,實(shí)現(xiàn)了一個(gè)企業(yè)大數(shù)據(jù)分析應(yīng)用平臺(tái)。
二、企業(yè)大數(shù)據(jù)分析應(yīng)用平臺(tái)的總體架構(gòu)
基于開(kāi)源軟件的企業(yè)大數(shù)據(jù)分析應(yīng)用平臺(tái),其總體架構(gòu)如圖所示,一共分四層:數(shù)據(jù)源層、數(shù)據(jù)存儲(chǔ)層、大數(shù)據(jù)分析處理層和大數(shù)據(jù)應(yīng)用層。
數(shù)據(jù)源層主要負(fù)責(zé)收集企業(yè)大數(shù)據(jù)分析所需要的基礎(chǔ)數(shù)據(jù)。企業(yè)業(yè)務(wù)系統(tǒng)數(shù)據(jù),從時(shí)間的角度,可以分為實(shí)時(shí)性要求不高的批處理數(shù)據(jù)和對(duì)實(shí)時(shí)性要求比較高的流式數(shù)據(jù)。在大數(shù)據(jù)時(shí)代,除了要分析企業(yè)本身的經(jīng)營(yíng)數(shù)據(jù),還需要對(duì)與本企業(yè)所屬行業(yè)和相關(guān)行業(yè)的公開(kāi)數(shù)據(jù)進(jìn)行分析。因而在這一層需要通過(guò)網(wǎng)絡(luò)爬蟲(chóng),在互聯(lián)網(wǎng)上公開(kāi)收集的數(shù)據(jù)。有時(shí)候無(wú)法通過(guò)互聯(lián)網(wǎng)公開(kāi)獲取本行業(yè)及相關(guān)行業(yè)的數(shù)據(jù),還需要購(gòu)買(mǎi)一些專(zhuān)業(yè)的數(shù)據(jù),來(lái)滿足企業(yè)在數(shù)據(jù)方面的需要。
數(shù)據(jù)存儲(chǔ)層對(duì)來(lái)自不同數(shù)據(jù)源的數(shù)據(jù),進(jìn)行安全可靠地存儲(chǔ)。在本層,我們基于數(shù)據(jù)湖的概念進(jìn)行設(shè)計(jì)實(shí)現(xiàn)。傳統(tǒng)上的數(shù)據(jù)存儲(chǔ)是基于寫(xiě)模式的,也就是說(shuō),在存儲(chǔ)數(shù)據(jù)的時(shí)候,只存儲(chǔ)預(yù)定模式的數(shù)據(jù),不滿足模式的數(shù)據(jù)在存儲(chǔ)時(shí)被丟棄,無(wú)法完全存儲(chǔ)能夠采集到的全部數(shù)據(jù)。數(shù)據(jù)湖存儲(chǔ)技術(shù)是基于讀模式的,在存儲(chǔ)數(shù)據(jù)時(shí),所有原始采集獲得的數(shù)據(jù),原封不動(dòng)地保存在存儲(chǔ)系統(tǒng)中,當(dāng)需要對(duì)這些數(shù)據(jù)進(jìn)行分析時(shí),才會(huì)根據(jù)分析的需要,從數(shù)據(jù)湖中抽取所需要的數(shù)據(jù)。數(shù)據(jù)湖存儲(chǔ)技術(shù)相對(duì)于傳統(tǒng)存儲(chǔ)技術(shù),好處顯而易見(jiàn)?;旧?,采用數(shù)據(jù)湖存儲(chǔ)技術(shù),沒(méi)有原始數(shù)據(jù)的丟棄,可以滿足企業(yè)數(shù)據(jù)分析在未來(lái)的各種需要。采用數(shù)據(jù)湖技術(shù)實(shí)現(xiàn)企業(yè)的大數(shù)據(jù)存儲(chǔ),要求系統(tǒng)的存儲(chǔ)是可以橫向擴(kuò)展的,當(dāng)采集到的數(shù)據(jù)增加時(shí),可以在系統(tǒng)中添加更多的存儲(chǔ)計(jì)算機(jī)來(lái)滿足要求,從成本上讓企業(yè)可以負(fù)擔(dān)得起,而不需要像昂貴的垂直擴(kuò)展技術(shù)那樣,更換整個(gè)存儲(chǔ)系統(tǒng)來(lái)滿足數(shù)據(jù)存儲(chǔ)的要求。
在大數(shù)據(jù)分析處理層,我們采用SQL技術(shù)來(lái)對(duì)數(shù)據(jù)湖中的數(shù)據(jù)進(jìn)行交互式大數(shù)據(jù)分析;對(duì)實(shí)時(shí)性要求高的分析,采用流式數(shù)據(jù)分析技術(shù)。根據(jù)需要可以使用現(xiàn)成的數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)算法庫(kù),來(lái)對(duì)企業(yè)保存在數(shù)據(jù)湖中的數(shù)據(jù)進(jìn)行分析。
大數(shù)據(jù)應(yīng)用層是企業(yè)大數(shù)據(jù)的價(jià)值體現(xiàn)。在這一層,企業(yè)可以獲得各種經(jīng)營(yíng)所需要的報(bào)表以及各種決策支持建議。采用數(shù)據(jù)可視化技術(shù),可以更為直觀地讓企業(yè)人員使用大數(shù)據(jù)分析的結(jié)論,實(shí)現(xiàn)企業(yè)的經(jīng)營(yíng)目標(biāo)。
三、企業(yè)大數(shù)據(jù)分析應(yīng)用平臺(tái)的開(kāi)源技術(shù)實(shí)現(xiàn)
1.數(shù)據(jù)存儲(chǔ)層的實(shí)現(xiàn)
基于數(shù)據(jù)湖概念的大數(shù)據(jù)存儲(chǔ)層的技術(shù)實(shí)現(xiàn),可以采用開(kāi)源大數(shù)據(jù)生態(tài)系統(tǒng)Hadoop來(lái)構(gòu)建存儲(chǔ)集群。Hadoop集群系統(tǒng)采用普通的PC服務(wù)器來(lái)集成,因此具有成本低廉的特點(diǎn),企業(yè)在經(jīng)濟(jì)上完全可以負(fù)擔(dān)得起。Hadoop集群從設(shè)計(jì)之初就考慮了集群中單臺(tái)服務(wù)器容易發(fā)生故障的問(wèn)題,也就是說(shuō),在Hadoop集群中發(fā)生服務(wù)器故障是家常便飯,Hadoop集群具有高可用性的特點(diǎn),可以滿足企業(yè)的生產(chǎn)要求。
在數(shù)據(jù)存儲(chǔ)層,我們主要使用Hadoop文件系統(tǒng)HDFS和Hadoop數(shù)據(jù)庫(kù)Hbase這兩個(gè)組件來(lái)實(shí)現(xiàn)。
HDFS是以Google公司的GFS為原型設(shè)計(jì)出來(lái)的一個(gè)開(kāi)源分布式文件系統(tǒng)。HDFS文件系統(tǒng)的塊大小可以是64MB,128MB或者256MB,因此特別適合用來(lái)存儲(chǔ)大數(shù)據(jù)文件,不適合用來(lái)存儲(chǔ)小文件。對(duì)HDFS上的文件主要是順序讀,不支持隨機(jī)讀寫(xiě),雖然可以支持在文件的尾部進(jìn)行追加寫(xiě)。
由于HDFS文件系統(tǒng)不是完整意義上的POSIX文件系統(tǒng),不支持文件的隨機(jī)讀寫(xiě)。因此在數(shù)據(jù)存儲(chǔ)層的實(shí)現(xiàn)上,還采用HBase來(lái)彌補(bǔ)這方面的缺陷。雖然HBase也是存儲(chǔ)在HDFS之上,但是因?yàn)椴捎昧巳罩窘Y(jié)構(gòu)合并樹(shù)(Log Structure Merge-tree),因而HBase支持對(duì)數(shù)據(jù)按行鍵隨機(jī)讀寫(xiě)。
來(lái)自數(shù)據(jù)源層的實(shí)時(shí)數(shù)據(jù),通過(guò)開(kāi)源Kafka系統(tǒng)存儲(chǔ)在企業(yè)數(shù)據(jù)湖之中,并由大數(shù)據(jù)分析層進(jìn)行實(shí)時(shí)分析。對(duì)于批處理用到的數(shù)據(jù),可以使用開(kāi)源ETL工具Sqoop或者Kettle,將數(shù)據(jù)從業(yè)務(wù)系統(tǒng)抽取到數(shù)據(jù)湖中。爬蟲(chóng)系統(tǒng),可以采用開(kāi)源的爬蟲(chóng)引擎Nutch和搜索引擎ElasticSearch,將從互聯(lián)網(wǎng)上爬到的相關(guān)數(shù)據(jù)保存在數(shù)據(jù)湖中。購(gòu)買(mǎi)的數(shù)據(jù)可以直接保存在數(shù)據(jù)湖中。
2.大數(shù)據(jù)分析處理層的實(shí)現(xiàn)
大數(shù)據(jù)分析層采用開(kāi)源Spark數(shù)據(jù)分析平臺(tái)來(lái)實(shí)現(xiàn)。SQL是一種廣泛應(yīng)用的交互式數(shù)據(jù)分析技術(shù),對(duì)企業(yè)來(lái)說(shuō),能以較低的人力成本雇傭到掌握SQL語(yǔ)言的工作人員。很容易使用Spark SQL技術(shù)來(lái)對(duì)數(shù)據(jù)湖中的企業(yè)數(shù)據(jù),進(jìn)行交互式數(shù)據(jù)分析。企業(yè)的實(shí)時(shí)數(shù)據(jù)分析需求,對(duì)時(shí)間并沒(méi)有太嚴(yán)格的限制,采用Spark Streaming技術(shù)來(lái)實(shí)現(xiàn),完全能夠勝任。
Spark是一個(gè)統(tǒng)一的數(shù)據(jù)分析平臺(tái),可以在Spark Streaming和SparkSQL分析中調(diào)用Spark Mlib進(jìn)行數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)。
四、結(jié)束語(yǔ)
基于開(kāi)源軟件Hadoop/Spark實(shí)現(xiàn)的企業(yè)大數(shù)據(jù)分析應(yīng)用平臺(tái),從技術(shù)上說(shuō)基本是成熟的。這已經(jīng)從其在企業(yè)中被廣泛運(yùn)用所證實(shí)。如果企業(yè)已經(jīng)組建的自己的私有云硬件平臺(tái),那么前期的開(kāi)發(fā)實(shí)驗(yàn)平臺(tái)的硬件成本,基本可以忽略不計(jì)。后期數(shù)據(jù)分析應(yīng)用平臺(tái)投入生產(chǎn),其硬件方面的投資也不會(huì)太高。采用本文提出的大數(shù)據(jù)分析應(yīng)用平臺(tái)方案,其成本構(gòu)成主要是人力資源方面的投入。對(duì)于企業(yè)來(lái)說(shuō),最大的挑戰(zhàn)在于需要一些懂業(yè)務(wù)的領(lǐng)域?qū)<液蛿?shù)據(jù)分析工程師合作,充分發(fā)掘和實(shí)現(xiàn)大數(shù)據(jù)對(duì)企業(yè)的價(jià)值。
參考文獻(xiàn):
[1]Tomwhite著;王海,華東,劉喻,呂粵海譯.Hadoop權(quán)威指南第四版. 北京:清華大學(xué)出版社,2017.
[2]Alex Liu著;閆龍川,高德荃,李君婷譯.Apache Spark機(jī)器學(xué)習(xí). 北京:機(jī)械工業(yè)出版社,2017.
[3]Venkat Ankam著;吳今朝譯.Spark與Hadoop大數(shù)據(jù)分析. 北京:機(jī)械工業(yè)出版社,2017.
[4]Mohammed Guller著;趙斌,馬景,陳冠誠(chéng)譯.Spark大數(shù)據(jù)分析. 北京:機(jī)械工業(yè)出版社,2017.
[5]Mahmoud parsian著;蘇金國(guó),楊健康譯.數(shù)據(jù)算法Hadoop/Spark大數(shù)據(jù)處理技巧.北京:中國(guó)電力出版社,2017.endprint