面對(duì)海量的各種來(lái)源的數(shù)據(jù),如何對(duì)這些零散的數(shù)據(jù)進(jìn)行有效的分析,得到有價(jià)值的信息一直是大數(shù)據(jù)領(lǐng)域研究的熱點(diǎn)問(wèn)題。
大數(shù)據(jù)分析處理平臺(tái)就是整合當(dāng)前主流的各種具有不同側(cè)重點(diǎn)的大數(shù)據(jù)處理分析框架和工具,實(shí)現(xiàn)對(duì)數(shù)據(jù)的挖掘和分析,一個(gè)大數(shù)據(jù)分析平臺(tái)涉及到的組件眾多,如何將其有機(jī)地結(jié)合起來(lái),完成海量數(shù)據(jù)的挖掘是一項(xiàng)復(fù)雜的工作。在搭建大數(shù)據(jù)分析平臺(tái)之前,要先明確業(yè)務(wù)需求場(chǎng)景以及用戶的需求,通過(guò)大數(shù)據(jù)分析平臺(tái),想要得到哪些有價(jià)值的信息,需要接入的數(shù)據(jù)有哪些,明確基于場(chǎng)景業(yè)務(wù)需求的大數(shù)據(jù)平臺(tái)要具備的基本的功能,來(lái)決定平臺(tái)搭建過(guò)程中使用的大數(shù)據(jù)處理工具和框架。
(1)操作系統(tǒng)的選擇操作系統(tǒng)一般使用開(kāi)源版的RedHat、Centos或者Debian作為底層的構(gòu)建平臺(tái),要根據(jù)大數(shù)據(jù)平臺(tái)所要搭建的數(shù)據(jù)分析工具可以支持的系統(tǒng),正確的選擇操作系統(tǒng)的版本。
(2)搭建Hadoop集群Hadoop作為一個(gè)開(kāi)發(fā)和運(yùn)行處理大規(guī)模數(shù)據(jù)的軟件平臺(tái),實(shí)現(xiàn)了在大量的廉價(jià)計(jì)算機(jī)組成的集群中對(duì)海量數(shù)據(jù)進(jìn)行分布式計(jì)算。Hadoop框架中最核心的設(shè)計(jì)是HDFS和MapReduce,HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上,能夠提供高吞吐量的數(shù)據(jù)訪問(wèn),適用于那些有著超大數(shù)據(jù)集的應(yīng)用程序;MapReduce是一套可以從海量的數(shù)據(jù)中提取數(shù)據(jù)最后返回結(jié)果集的編程模型。在生產(chǎn)實(shí)踐應(yīng)用中,Hadoop非常適合應(yīng)用于大數(shù)據(jù)存儲(chǔ)和大數(shù)據(jù)的分析應(yīng)用,適合服務(wù)于幾千臺(tái)到幾萬(wàn)臺(tái)大的服務(wù)器的集群運(yùn)行,支持PB級(jí)別的存儲(chǔ)容量。Hadoop家族還包含各種開(kāi)源組件,比如Yarn,Zookeeper,Hbase,Hive,Sqoop,Impala,Spark等。使用開(kāi)源組件的優(yōu)勢(shì)顯而易見(jiàn),活躍的社區(qū)會(huì)不斷的迭代更新組件版本,使用的人也會(huì)很多,遇到問(wèn)題會(huì)比較容易解決,同時(shí)代碼開(kāi)源,高水平的數(shù)據(jù)開(kāi)發(fā)工程師可結(jié)合自身項(xiàng)目的需求對(duì)代碼進(jìn)行修改,以更好的為項(xiàng)目提供服務(wù)。
(3)選擇數(shù)據(jù)接入和預(yù)處理工具面對(duì)各種來(lái)源的數(shù)據(jù),數(shù)據(jù)接入就是將這些零散的數(shù)據(jù)整合在一起,綜合起來(lái)進(jìn)行分析。數(shù)據(jù)接入主要包括文件日志的接入、數(shù)據(jù)庫(kù)日志的接入、關(guān)系型數(shù)據(jù)庫(kù)的接入和應(yīng)用程序等的接入,數(shù)據(jù)接入常用的工具有Flume,Logstash,NDC(網(wǎng)易數(shù)據(jù)運(yùn)河系統(tǒng)),sqoop等。對(duì)于實(shí)時(shí)性要求比較高的業(yè)務(wù)場(chǎng)景,比如對(duì)存在于社交網(wǎng)站、新聞等的數(shù)據(jù)信息流需要進(jìn)行快速的處理反饋,那么數(shù)據(jù)的接入可以使用開(kāi)源的Strom,Spark streaming等。當(dāng)需要使用上游模塊的數(shù)據(jù)進(jìn)行計(jì)算、統(tǒng)計(jì)和分析的時(shí)候,就需要用到分布式的消息系統(tǒng),比如基于發(fā)布/訂閱的消息系統(tǒng)kafka。還可以使用分布式應(yīng)用程序協(xié)調(diào)服務(wù)Zookeeper來(lái)提供數(shù)據(jù)同步服務(wù),更好的保證數(shù)據(jù)的可靠和一致性。數(shù)據(jù)預(yù)處理是在海量的數(shù)據(jù)中提取出可用特征,建立寬表,創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù),會(huì)使用到HiveSQL,SparkSQL和Impala等工具。隨著業(yè)務(wù)量的增多,需要進(jìn)行訓(xùn)練和清洗的數(shù)據(jù)也會(huì)變得越來(lái)越復(fù)雜,可以使用azkaban或者oozie作為工作流調(diào)度引擎,用來(lái)解決有多個(gè)hadoop或者spark等計(jì)算任務(wù)之間的依賴關(guān)系問(wèn)題。
(4)數(shù)據(jù)存儲(chǔ)除了Hadoop中已廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)的HDFS,常用的還有分布式、面向列的開(kāi)源數(shù)據(jù)庫(kù)Hbase,HBase是一種key/value系統(tǒng),部署在HDFS上,與Hadoop一樣,HBase的目標(biāo)主要是依賴橫向擴(kuò)展,通過(guò)不斷的增加廉價(jià)的商用服務(wù)器,增加計(jì)算和存儲(chǔ)能力。同時(shí)hadoop的資源管理器Yarn,可以為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,為集群在利用率、資源統(tǒng)一等方面帶來(lái)巨大的好處。Kudu是一個(gè)圍繞Hadoop生態(tài)圈建立的存儲(chǔ)引擎,Kudu擁有和Hadoop生態(tài)圈共同的設(shè)計(jì)理念,可以運(yùn)行在普通的服務(wù)器上,作為一個(gè)開(kāi)源的存儲(chǔ)引擎,可以同時(shí)提供低延遲的隨機(jī)讀寫和高效的數(shù)據(jù)分析能力。Redis是一種速度非??斓姆顷P(guān)系型數(shù)據(jù)庫(kù),可以將存儲(chǔ)在內(nèi)存中的鍵值對(duì)數(shù)據(jù)持久化到硬盤中,可以存儲(chǔ)鍵與5種不同類型的值之間的映射。
(5)選擇數(shù)據(jù)挖掘工具Hive可以將結(jié)構(gòu)化的數(shù)據(jù)映射為一張數(shù)據(jù)庫(kù)表,并提供HQL的查詢功能,它是建立在Hadoop之上的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)架構(gòu),是為了減少M(fèi)apReduce編寫工作的批處理系統(tǒng),它的出現(xiàn)可以讓那些精通SQL技能、但是不熟悉MapReduce、編程能力較弱和不擅長(zhǎng)Java的用戶能夠在HDFS大規(guī)模數(shù)據(jù)集上很好的利用SQL語(yǔ)言查詢、匯總、分析數(shù)據(jù)。Impala是對(duì)Hive的一個(gè)補(bǔ)充,可以實(shí)現(xiàn)高效的SQL查詢,但是Impala將整個(gè)查詢過(guò)程分成了一個(gè)執(zhí)行計(jì)劃樹,而不是一連串的MapReduce任務(wù),相比Hive有更好的并發(fā)性和避免了不必要的中間sort和shuffle。Spark可以將Job中間輸出結(jié)果保存在內(nèi)存中,不需要讀取HDFS,Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。Solr是一個(gè)運(yùn)行在Servlet容器的獨(dú)立的企業(yè)級(jí)搜索應(yīng)用的全文搜索服務(wù)器,用戶可以通過(guò)http請(qǐng)求,向搜索引擎服務(wù)器提交一定格式的XML,生成索引,或者通過(guò)HTTP GET操作提出查找請(qǐng)求,并得到XML格式的返回結(jié)果。還可以對(duì)數(shù)據(jù)進(jìn)行建模分析,會(huì)用到機(jī)器學(xué)習(xí)相關(guān)的知識(shí),常用的機(jī)器學(xué)習(xí)算法,比如貝葉斯、邏輯回歸、決策樹、神經(jīng)網(wǎng)絡(luò)、協(xié)同過(guò)濾等。
(6)數(shù)據(jù)的可視化以及輸出API對(duì)于處理得到的數(shù)據(jù)可以對(duì)接主流的BI系統(tǒng),比如國(guó)外的Tableau、Qlikview、PowrerBI等,國(guó)內(nèi)的SmallBI和新興的網(wǎng)易有數(shù)(可免費(fèi)試用)等,將結(jié)果進(jìn)行可視化,用于決策分析;或者回流到線上,支持線上業(yè)務(wù)的發(fā)展。成熟的搭建一套大數(shù)據(jù)分析平臺(tái)不是一件簡(jiǎn)單的事情,本身就是一項(xiàng)復(fù)雜的工作,在這過(guò)程中需要考慮的因素有很多,比如:穩(wěn)定性,可以通過(guò)多臺(tái)機(jī)器做數(shù)據(jù)和程序運(yùn)行的備份,但服務(wù)器的質(zhì)量和預(yù)算成本相應(yīng)的會(huì)限制平臺(tái)的穩(wěn)定性;可擴(kuò)展性:大數(shù)據(jù)平臺(tái)部署在多臺(tái)機(jī)器上,如何在其基礎(chǔ)上擴(kuò)充新的機(jī)器是實(shí)際應(yīng)用中經(jīng)常會(huì)遇到的問(wèn)題;安全性:保障數(shù)據(jù)安全是大數(shù)據(jù)平臺(tái)不可忽視的問(wèn)題,在海量數(shù)據(jù)的處理過(guò)程中,如何防止數(shù)據(jù)的丟失和泄漏一直是大數(shù)據(jù)安全領(lǐng)域的研究熱點(diǎn)。
-
Hadoop
+關(guān)注
關(guān)注
1文章
90瀏覽量
15974 -
大數(shù)據(jù)
+關(guān)注
關(guān)注
64文章
8882瀏覽量
137394
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論