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