李丹

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