建立一個大數據平臺的正確姿態

本文來自網易雲社區算法

 

面對海量的各類來源的數據,如何對這些零散的數據進行有效的分析,獲得有價值的信息一直是大數據領域研究的熱點問題。大數據分析處理平臺就是整合當前主流的各類具備不一樣側重點的大數據處理分析框架和工具,實現對數據的挖掘和分析,一個大數據分析平臺涉及到的組件衆多,如何將其有機地結合起來,完成海量數據的挖掘是一項複雜的工做。數據庫

 

在搭建大數據分析平臺以前,要先明確業務需求場景以及用戶的需求,經過大數據分析平臺,想要獲得哪些有價值的信息,須要接入的數據有哪些,明確基於場景業務需求的大數據平臺要具有的基本的功能,來決定平臺搭建過程當中使用的大數據處理工具和框架。編程

 

(1)操做系統的選擇安全

 

操做系統通常使用開源版的RedHat、CentOS或者Debian做爲底層的構建平臺,要根據大數據平臺所要搭建的數據分析工具能夠支持的系統,正確地選擇操做系統的版本。服務器

 

(2)搭建Hadoop集羣網絡

 

Hadoop做爲一個開發和運行處理大規模數據的軟件平臺,實現了在大量的廉價計算機組成的集羣中對海量數據進行分佈式計算。Hadoop框架中最核心的設計是HDFS和MapReduce,HDFS是一個高度容錯性的系統,適合部署在廉價的機器上,可以提供高吞吐量的數據訪問,適用於那些有着超大數據集的應用程序;MapReduce是一套能夠從海量的數據中提取數據最後返回結果集的編程模型。在生產實踐應用中,Hadoop很是適合應用於大數據存儲和大數據的分析應用,適合服務於幾千臺到幾萬臺大的服務器的集羣運行,支持PB級別的存儲容量。架構

 

Hadoop家族還包含各類開源組件,好比Yarn,Zookeeper,Hbase,Hive,Sqoop,Impala,Spark等。使用開源組件的優點顯而易見,活躍的社區會不斷的迭代更新組件版本,使用的人也會不少,遇到問題會比較容易解決,同時代碼開源,高水平的數據開發工程師可結合自身項目的需求對代碼進行修改,以更好地爲項目提供服務。併發

 

(3)選擇數據接入和預處理工具框架

 

面對各類來源的數據,數據接入就是將這些零散的數據整合在一塊兒,綜合起來進行分析。數據接入主要包括文件日誌的接入、數據庫日誌的接入、關係型數據庫的接入和應用程序等的接入,數據接入經常使用的工具備Flume,Logstash,NDC(網易數據運河系統),Sqoop等。對於實時性要求比較高的業務場景,好比對存在於社交網站、新聞等的數據信息流須要快速處理反饋,那麼數據的接入可使用開源的Strom,Spark streaming等。當須要使用上游模塊的數據進行計算、統計和分析的時候,就須要用到分佈式的消息系統,好比基於發佈/訂閱的消息系統kafka。還可使用分佈式應用程序協調服務Zookeeper來提供數據同步服務,更好地保證數據的可靠和一致性。運維

 

數據預處理是在海量的數據中提取出可用特徵,創建寬表,建立數據倉庫,會使用到HiveSQL,SparkSQL和Impala等工具。隨着業務量的增多,須要進行訓練和清洗的數據也會變得愈來愈複雜,可使用azkaban或者oozie做爲工做流調度引擎,用來解決有多個hadoop或者spark等計算任務之間的依賴關係問題。

 

(4)數據存儲

 

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

 

(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格式的返回結果。

 

還能夠對數據進行建模分析,會用到機器學習相關的知識,經常使用的機器學習算法,好比貝葉斯、邏輯迴歸、決策樹、神經網絡、協同過濾等。

 

(6)數據的可視化以及輸出API

 

對於處理獲得的數據能夠對接主流的BI系統,好比國外的Tableau、Qlikview、PowrerBI等,國內的SmallBI和新興的網易有數等,將結果進行可視化,用於決策分析;或者回流到線上,支持線上業務的發展。

 

搭建一套大數據分析平臺不是一件簡單的事情,自己就是一項複雜的工做,在這過程當中須要考慮的因素有不少,好比:

 

  • 穩定性,能夠經過多臺機器作數據和程序運行的備份,但服務器的質量和預算成本相應的會限制平臺的穩定性;
  • 可擴展性:大數據平臺部署在多臺機器上,如何在其基礎上擴充新的機器是實際應用中常常會遇到的問題;
  • 安全性:保障數據安全是大數據平臺不可忽視的問題,在海量數據的處理過程當中,如何防止數據的丟失和泄漏一直是大數據安全領域的研究熱點。

 

利益相關:網易猛獁大數據平臺是一站式大數據應用開發和數據管理平臺。基於業務場景設計的用戶操做界面提升了系統的易用性,結束了平臺命令行運維的繁瑣狀態,數據開發工程師和數據分析師經過簡單拖拽和表單填寫便可完成數據科學相關工做。平臺提供多租戶支持,不一樣租戶之間相互隔離,底層使用Kerberos認證,實現了數據的安全性和隔離性,除了認證系統,利用ranger實現了細粒度權限控制,保證了各個租戶之間只能查看受權訪問的庫、表或者字段,此外,平臺提供審計功能,經過對用戶平臺行爲的記錄、分析和彙報,用來幫助過後生成合規報告、事故追根溯源,提升平臺的安全性。

 

相關閱讀:猛獁機器學習開發實踐

原文:如何建立一個大數據平臺?具體的步驟

相關文章
相關標籤/搜索