183.17.230.* 2020-08-24 13:26:39 |
一個成功的大數(shù)據(jù)分析程序?qū)τ谑占约胺治龃髷?shù)據(jù)都是至關(guān)重要的,對于大數(shù)據(jù)分析程序我們需要一個**的流程管理,而今天我們就一起來了解和學(xué)習(xí)一下,大數(shù)據(jù)分析過程都包含了哪些內(nèi)容。
大數(shù)據(jù)分析流程都包含哪些步驟
1、數(shù)據(jù)收集
大數(shù)據(jù)處理的**步是數(shù)據(jù)的收集。現(xiàn)在的中大型項目通常采用微服務(wù)架構(gòu)進行分布式部署,所以數(shù)據(jù)的采集需要在多臺服務(wù)器上進行,且采集過程不能影響正常業(yè)務(wù)的開展。基于這種需求,就衍生了多種日志收集工具,如Flume、Logstash、Kibana等,它們都能通過簡單的配置完成復(fù)雜的數(shù)據(jù)收集和數(shù)據(jù)聚合。
2、數(shù)據(jù)存儲
收集到數(shù)據(jù)后,下一個問題就是:數(shù)據(jù)該如何進行存儲?通常大家最為熟知是MySQL、Oracle等傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,它們的優(yōu)點是能夠快速存儲結(jié)構(gòu)化的數(shù)據(jù),并支持隨機訪問。但大數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)通常是半結(jié)構(gòu)化(如日志數(shù)據(jù))、甚至是非結(jié)構(gòu)化的(如視頻、音頻數(shù)據(jù)),為了解決海量半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的存儲,衍生了HadoopHDFS、KFS、GFS等分布式文件系統(tǒng),它們都能夠支持結(jié)構(gòu)化、半結(jié)構(gòu)和非結(jié)構(gòu)化數(shù)據(jù)的存儲,并可以通過增加機器進行橫向擴展。
分布式文件系統(tǒng)**地解決了海量數(shù)據(jù)存儲的問題,但是一個**的數(shù)據(jù)存儲系統(tǒng)需要同時考慮數(shù)據(jù)存儲和訪問兩方面的問題,比如你希望能夠?qū)?shù)據(jù)進行隨機訪問,這是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫所擅長的,但卻不是分布式文件系統(tǒng)所擅長的,那么有沒有一種存儲方案能夠同時兼具分布式文件系統(tǒng)和關(guān)系型數(shù)據(jù)庫的優(yōu)點,基于這種需求,就產(chǎn)生了HBase、MongoDB。
3、數(shù)據(jù)分析
大數(shù)據(jù)處理最重要的環(huán)節(jié)就是數(shù)據(jù)分析,數(shù)據(jù)分析通常分為兩種:批處理和流處理。
批處理:對一段時間內(nèi)海量的離線數(shù)據(jù)進行統(tǒng)一的處理,對應(yīng)的處理框架有HadoopMapReduce、Spark、Flink等;
流處理:對運動中的數(shù)據(jù)進行處理,即在接收數(shù)據(jù)的同時就對其進行處理,對應(yīng)的處理框架有Storm、SparkStreaming、FlinkStreaming等。
批處理和流處理各有其適用的場景,時間不敏感或者硬件資源有限,可以采用批處理;時間敏感和及時性要求高就可以采用流處理。隨著服務(wù)器硬件的價格越來越低和大家對及時性的要求越來越高,流處理越來越普遍,如股票價格預(yù)測和電商運營數(shù)據(jù)分析等。
上面的框架都是需要通過編程來進行數(shù)據(jù)分析,那么如果你不是一個后臺工程師,是不是就不能進行數(shù)據(jù)的分析了?當(dāng)然不是,大數(shù)據(jù)是一個非常完善的生態(tài)圈,有需求就有解決方案。為了能夠讓熟悉SQL的人員也能夠進行數(shù)據(jù)的分析,查詢分析框架應(yīng)運而生,常用的有Hive、SparkSQL、FlinkSQL、Pig、Phoenix等。這些框架都能夠使用標(biāo)準(zhǔn)的SQL或者類SQL語法靈活地進行數(shù)據(jù)的查詢分析。這些SQL經(jīng)過解析優(yōu)化后轉(zhuǎn)換為對應(yīng)的作業(yè)程序來運行,如Hive本質(zhì)上就是將SQL轉(zhuǎn)換為MapReduce作業(yè),SparkSQL將SQL轉(zhuǎn)換為一系列的RDDs和轉(zhuǎn)換關(guān)系(transformations),Phoenix將SQL查詢轉(zhuǎn)換為一個或多個HBaseScan。
4、數(shù)據(jù)應(yīng)用
數(shù)據(jù)分析完成后,接下來就是數(shù)據(jù)應(yīng)用的范疇,這取決于你實際的業(yè)務(wù)需求。比如你可以將數(shù)據(jù)進行可視化展現(xiàn),或者將數(shù)據(jù)用于優(yōu)化你的推薦算法,這種運用現(xiàn)在很普遍,比如短視頻個性化推薦、電商商品推薦、頭條新聞推薦等。當(dāng)然你也可以將數(shù)據(jù)用于訓(xùn)練你的機器學(xué)習(xí)模型,這些都屬于其他領(lǐng)域的范疇,都有著對應(yīng)的框架和技術(shù)棧進行處理,這里就不一一贅述。
5、其他框架
上面是一個標(biāo)準(zhǔn)的大數(shù)據(jù)處理流程所用到的技術(shù)框架。但是實際的大數(shù)據(jù)處理流程比上面復(fù)雜很多,針對大數(shù)據(jù)處理中的各種復(fù)雜問題分別衍生了各類框架:
單機的處理能力都是存在瓶頸的,所以大數(shù)據(jù)框架都是采用集群模式進行部署,為了更方便的進行集群的部署、監(jiān)控和管理,衍生了Ambari、ClouderaManager等集群管理工具;
想要保證集群高可用,需要用到ZooKeeper,ZooKeeper是最常用的分布式協(xié)調(diào)服務(wù),它能夠解決大多數(shù)集群問題,包括領(lǐng)選舉、失敗恢復(fù)、元數(shù)據(jù)存儲及其一致性保證。同時針對集群資源管理的需求,又衍生了HadoopYARN;
復(fù)雜大數(shù)據(jù)處理的另外一個顯著的問題是,如何調(diào)度多個復(fù)雜的并且彼此之間存在依賴關(guān)系的作業(yè)?基于這種需求,產(chǎn)生了Azkaban和Oozie等工作流調(diào)度框架;
大數(shù)據(jù)流處理中使用的比較多的另外一個框架是Kafka,它可以用于消峰,避免在**等場景下并發(fā)數(shù)據(jù)對流處理程序造成沖擊;
另一個常用的框架是Sqoop,主要是解決了數(shù)據(jù)遷移的問題,它能夠通過簡單的命令將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)入到HDFS、Hive或HBase中,或者從HDFS、Hive導(dǎo)出到關(guān)系型數(shù)據(jù)庫上。
大數(shù)據(jù)分析流程步驟都有哪些.中琛魔方大數(shù)據(jù)分析平臺(www.zcmorefun.com)表示大數(shù)據(jù)分析的過程和結(jié)果都要依托于一個強大的計算機基礎(chǔ)架構(gòu),這對于處理大數(shù)據(jù)信息也是至關(guān)重要的,如果要開發(fā)一些交互的系統(tǒng),那么對于滿足不同的用戶需求是很重要的。 |