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