CIO之家:如何構建一個企業的大數據分析平臺

源|CIO之家

面對海量的各種來源的數據,如何對這些零散的數據進行有效的分析,得到有價值的信息一直是大數據領域研究的熱點問題。

大數據分析處理平臺就是整合當前主流的各種具有不同側重點的大數據處理分析框架和工具,實現對數據的挖掘和分析,一個大數據分析平臺涉及到的組件眾多,如何將其有機地結合起來,完成海量數據的挖掘是一項複雜的工作。在搭建大數據分析平臺之前,要先明確業務需求場景以及用戶的需求,通過大數據分析平臺,想要得到哪些有價值的信息,需要接入的數據有哪些,明確基於場景業務需求的大數據平臺要具備的基本的功能,來決定平臺搭建過程中使用的大數據處理工具和框架。

CIO之家:如何構建一個企業的大數據分析平臺

(1)操作系統的選擇操作系統一般使用開源版的RedHat、Centos或者Debian作為底層的構建平臺,要根據大數據平臺所要搭建的數據分析工具可以支持的系統,正確的選擇操作系統的版本。

(2)搭建Hadoop集群Hadoop作為一個開發和運行處理大規模數據的軟件平臺,實現了在大量的廉價計算機組成的集群中對海量數據進行分佈式計算。Hadoop框架中最核心的設計是HDFS和MapReduce,HDFS是一個高度容錯性的系統,適合部署在廉價的機器上,能夠提供高吞吐量的數據訪問,適用於那些有著超大數據集的應用程序;MapReduce是一套可以從海量的數據中提取數據最後返回結果集的編程模型。在生產實踐應用中,Hadoop非常適合應用於大數據存儲和大數據的分析應用,適合服務於幾千臺到幾萬臺大的服務器的集群運行,支持PB級別的存儲容量。Hadoop家族還包含各種開源組件,比如Yarn,Zookeeper,Hbase,Hive,Sqoop,Impala,Spark等。使用開源組件的優勢顯而易見,活躍的社區會不斷的迭代更新組件版本,使用的人也會很多,遇到問題會比較容易解決,同時代碼開源,高水平的數據開發工程師可結合自身項目的需求對代碼進行修改,以更好的為項目提供服務。

CIO之家:如何構建一個企業的大數據分析平臺

(3)選擇數據接入和預處理工具面對各種來源的數據,數據接入就是將這些零散的數據整合在一起,綜合起來進行分析。數據接入主要包括文件日誌的接入、數據庫日誌的接入、關係型數據庫的接入和應用程序等的接入,數據接入常用的工具有Flume,Logstash,NDC(網易數據運河系統),sqoop等。對於實時性要求比較高的業務場景,比如對存在於社交網站、新聞等的數據信息流需要進行快速的處理反饋,那麼數據的接入可以使用開源的Strom,Spark streaming等。當需要使用上游模塊的數據進行計算、統計和分析的時候,就需要用到分佈式的消息系統,比如基於發佈/訂閱的消息系統kafka。還可以使用分佈式應用程序協調服務Zookeeper來提供數據同步服務,更好的保證數據的可靠和一致性。數據預處理是在海量的數據中提取出可用特徵,建立寬表,創建數據倉庫,會使用到HiveSQL,SparkSQL和Impala等工具。隨著業務量的增多,需要進行訓練和清洗的數據也會變得越來越複雜,可以使用azkaban或者oozie作為工作流調度引擎,用來解決有多個hadoop或者spark等計算任務之間的依賴關係問題。

CIO之家:如何構建一個企業的大數據分析平臺

CIO之家:如何構建一個企業的大數據分析平臺

(4)數據存儲除了Hadoop中已廣泛應用於數據存儲的HDFS,常用的還有分佈式、面向列的開源數據庫Hbase,HBase是一種key/value系統,部署在HDFS上,與Hadoop一樣,HBase的目標主要是依賴橫向擴展,通過不斷的增加廉價的商用服務器,增加計算和存儲能力。同時hadoop的資源管理器Yarn,可以為上層應用提供統一的資源管理和調度,為集群在利用率、資源統一等方面帶來巨大的好處。Kudu是一個圍繞Hadoop生態圈建立的存儲引擎,Kudu擁有和Hadoop生態圈共同的設計理念,可以運行在普通的服務器上,作為一個開源的存儲引擎,可以同時提供低延遲的隨機讀寫和高效的數據分析能力。Redis是一種速度非常快的非關係型數據庫,可以將存儲在內存中的鍵值對數據持久化到硬盤中,可以存儲鍵與5種不同類型的值之間的映射。

CIO之家:如何構建一個企業的大數據分析平臺

(5)選擇數據挖掘工具Hive可以將結構化的數據映射為一張數據庫表,並提供HQL的查詢功能,它是建立在Hadoop之上的數據倉庫基礎架構,是為了減少MapReduce編寫工作的批處理系統,它的出現可以讓那些精通SQL技能、但是不熟悉MapReduce、編程能力較弱和不擅長Java的用戶能夠在HDFS大規模數據集上很好的利用SQL語言查詢、彙總、分析數據。Impala是對Hive的一個補充,可以實現高效的SQL查詢,但是Impala將整個查詢過程分成了一個執行計劃樹,而不是一連串的MapReduce任務,相比Hive有更好的併發性和避免了不必要的中間sort和shuffle。Spark可以將Job中間輸出結果保存在內存中,不需要讀取HDFS,Spark啟用了內存分佈數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。Solr是一個運行在Servlet容器的獨立的企業級搜索應用的全文搜索服務器,用戶可以通過http請求,向搜索引擎服務器提交一定格式的XML,生成索引,或者通過HTTP GET操作提出查找請求,並得到XML格式的返回結果。還可以對數據進行建模分析,會用到機器學習相關的知識,常用的機器學習算法,比如貝葉斯、邏輯迴歸、決策樹、神經網絡、協同過濾等。

CIO之家:如何構建一個企業的大數據分析平臺

(6)數據的可視化以及輸出API對於處理得到的數據可以對接主流的BI系統,比如國外的Tableau、Qlikview、PowrerBI等,國內的SmallBI和新興的網易有數(可免費試用)等,將結果進行可視化,用於決策分析;或者回流到線上,支持線上業務的發展。成熟的搭建一套大數據分析平臺不是一件簡單的事情,本身就是一項複雜的工作,在這過程中需要考慮的因素有很多,比如:穩定性,可以通過多臺機器做數據和程序運行的備份,但服務器的質量和預算成本相應的會限制平臺的穩定性;可擴展性:大數據平臺部署在多臺機器上,如何在其基礎上擴充新的機器是實際應用中經常會遇到的問題;安全性:保障數據安全是大數據平臺不可忽視的問題,在海量數據的處理過程中,如何防止數據的丟失和洩漏一直是大數據安全領域的研究熱點。

CIO之家:如何構建一個企業的大數據分析平臺


分享到:


相關文章: