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