無論從硬件還是軟件角度出發,您面向大數據構建的基礎設施都會對所支持大數據系統的分析與操作帶來巨大影響。在今天的文章中,我們將了解七項重要的大數據架構設計原則。
大數據不僅是Hadoop
在大多數人的理解當中,大數據與Hadoop幾乎可以等而論之。事實上,大數據遠不止Hadoop這么簡單。Hadoop是一套文件系統(而非數據庫),其負責將數據傳播至成百上千個處理節點當中。其之所以在大數據應用中廣泛出現,是因為作為文件系統,它能夠很好地處理非結構化數據——甚至包括一些看起來根本不算是數據的素材。
Hive與Impala將數據庫引入Hadoop
下面聊聊大數據世界中結構化數據部分的對應數據庫選項。如果大家希望以明確次序管理Hadoop數據平臺,那么Hive應是最佳選項。這是一款基礎性結構工具,允許大家在非SQL Hadoop當中執行SQL類操作。
如果大家的一部分數據能夠輕松旋轉在結構化數據庫當中,那么Impala則更為合適——除了自身功能外,它還能夠直接利用您已經開發出的Hive命令。Hadoop、Hive與Impala皆屬于Apache項目,因此其全部為開源成果——請隨意使用。
Spark用于處理大數據
截至目前,我們已經探討了數據的存儲與整理。然而,我們該如何對數據進行實際操作?這代表著我們需要一套分析與處理引擎,例如Spark。Spark亦屬于Apache項目,能夠將您的大批量數據整理為湖、倉儲乃至數據庫并進行實用性處理。
Spark亦可用于處理存儲在任意位置的各類數據,因為豐富的庫選項使其擁有了極為廣泛的訪問能力。另外,由于其屬于開源項目,因此大家能夠隨意修改其核心內容。
可以立足大數據執行SQL操作
很多朋友可能非常熟悉SQL數據庫構建與SQL查詢編寫工作。這方面專業知識在大數據領域同樣擁有用武之地。Presto是一套開源SQL查詢引擎,允許數據科學家利用SQL查詢以檢索從Hive到專有商用數據庫等各類數據庫系統。Facebook等巨頭級企業都在利用其進行交互查詢,因此我們基本可以將Presto視為一套理想的大規模數據集交互式查詢工具。
在線存儲同樣需要接地平臺
大數據領域中的相當一部分任務要求對數據進行快速變更——例如定期添加數據或者對變更數據進行分析等。無論如何,如果大家的數據擁有幾乎對等的讀取與寫入頻度,那么應當同時在本地與在線端保留數據副本。如果預算允許,使用固態存儲無疑效果更好,因為這能夠顯著提升數據處理速度。
云存儲的必要性
在對大規模聚合數據庫進行分析時,云存儲將成為最為理想的存儲平臺。大家可以將數據聚合后傳輸至云端,運行分析而后移除對應實例。數據處理不會受到互聯網性能的影響。另外,如果大家將內部實時分析系統與云端深度分析方案加以結合,則能夠最大程度發揮大數據基礎設施的全部潛力。
別忘了可視化機制
除了大數據分析,將結果以易于理解的方式加以呈現同樣非常重要,而數據可視化正是實現這一效果的關鍵性工具。
幸運的是,目前市面上提供多種可視化處理選項。大家可以選擇一部分并加以嘗試,同時了解用戶的反饋意見以判斷其效果。總而言之,可視化是實現大數據分析價值的最佳方式。