日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大数据处理流程

發(fā)布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据处理流程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大數(shù)據(jù)處理流程


1. 數(shù)據(jù)處理流程
網(wǎng)站流量日志數(shù)據(jù)分析是一個純粹的數(shù)據(jù)分析項(xiàng)目,其整體流程基本上就是依據(jù)數(shù)據(jù)的處理流程進(jìn)行。有以下幾個大的步驟:
1.1 數(shù)據(jù)采集
????????數(shù)據(jù)采集概念,目前行業(yè)會有兩種解釋:一是數(shù)據(jù)從無到有的過程(web服務(wù)器打印的日志、自定義采集的日志等)叫做數(shù)據(jù)采集;另一方面也有把通過使用Flume等工具把數(shù)據(jù)采集到指定位置的這個過程叫做數(shù)據(jù)采集。
關(guān)于具體含義要結(jié)合語境具體分析,明白語境中具體含義即可。
1.2 數(shù)據(jù)預(yù)處理
????????通過mapreduce程序?qū)Σ杉降脑既罩緮?shù)據(jù)進(jìn)行預(yù)處理,比如清洗,格式整理,濾除臟數(shù)據(jù)等,并且梳理成點(diǎn)擊流模型數(shù)據(jù)。
1.3 數(shù)據(jù)入庫
????????將預(yù)處理之后的數(shù)據(jù)導(dǎo)入到HIVE倉庫中相應(yīng)的庫和表中。
1.4 數(shù)據(jù)分析
????????項(xiàng)目的核心內(nèi)容,即根據(jù)需求開發(fā)ETL分析語句,得出各種統(tǒng)計結(jié)果。
1.5 數(shù)據(jù)展現(xiàn)
????????將分析所得數(shù)據(jù)進(jìn)行數(shù)據(jù)可視化,一般通過圖表進(jìn)行展示。

擴(kuò)展:
1、數(shù)據(jù)處理主要技術(shù)

????????Sqoop:作為一款開源的離線數(shù)據(jù)傳輸工具,主要用于Hadoop(Hive) 與傳統(tǒng)數(shù)據(jù)庫(MySql,PostgreSQL)間的數(shù)據(jù)傳遞。它可以將一個關(guān)系數(shù)據(jù)庫中數(shù)據(jù)導(dǎo)入Hadoop的HDFS中,也可以將HDFS中的數(shù)據(jù)導(dǎo)入關(guān)系型數(shù)據(jù)庫中。

????????Flume:實(shí)時數(shù)據(jù)采集的一個開源框架,它是Cloudera提供的一個高可用用的、高可靠、分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)。目前已經(jīng)是Apache的頂級子項(xiàng)目。使用Flume可以收集諸如日志、時間等數(shù)據(jù)并將這些數(shù)據(jù)集中存儲起來供下游使用(尤其是數(shù)據(jù)流框架,例如Storm)。和Flume類似的另一個框架是Scribe(FaceBook開源的日志收集系統(tǒng),它為日志的分布式收集、統(tǒng)一處理提供一個可擴(kuò)展的、高容錯的簡單方案)

????????Kafka:通常來說Flume采集數(shù)據(jù)的速度和下游處理的速度通常不同步,因此實(shí)時平臺架構(gòu)都會用一個消息中間件來緩沖,而這方面最為流行和應(yīng)用最為廣泛的無疑是Kafka。它是由LinkedIn開發(fā)的一個分布式消息系統(tǒng),以其可以水平擴(kuò)展和高吞吐率而被廣泛使用。目前主流的開源分布式處理系統(tǒng)(如Storm和Spark等)都支持與Kafka 集成。Kafka是一個基于分布式的消息發(fā)布-訂閱系統(tǒng),特點(diǎn)是速度快、可擴(kuò)展且持久。與其他消息發(fā)布-訂閱系統(tǒng)類似,Kafka可在主題中保存消息的信息。生產(chǎn)者向主題寫入數(shù)據(jù),消費(fèi)者從主題中讀取數(shù)據(jù)。作為一個分布式的、分區(qū)的、低延遲的、冗余的日志提交服務(wù)。和Kafka類似消息中間件開源產(chǎn)品還包括RabbiMQ、ActiveMQ、ZeroMQ等。

????????MapReduce是Google公司的核心計算模型,它將運(yùn)行于大規(guī)模集群上的復(fù)雜并行計算過程高度抽象為兩個函數(shù):map和reduce。MapReduce最偉大之處在于其將處理大數(shù)據(jù)的能力賦予了普通開發(fā)人員,以至于普通開發(fā)人員即使不會任何的分布式編程知識,也能將自己的程序運(yùn)行在分布式系統(tǒng)上處理海量數(shù)據(jù)。

????????Hive:MapReduce將處理大數(shù)據(jù)的能力賦予了普通開發(fā)人員,而Hive進(jìn)一步將處理和分析大數(shù)據(jù)的能力賦予了實(shí)際的數(shù)據(jù)使用人員(數(shù)據(jù)開發(fā)工程師、數(shù)據(jù)分析師、算法工程師、和業(yè)務(wù)分析人員)。Hive是由Facebook開發(fā)并貢獻(xiàn)給Hadoop開源社區(qū)的,是一個建立在Hadoop體系結(jié)構(gòu)上的一層SQL抽象。Hive提供了一些對Hadoop文件中數(shù)據(jù)集進(jìn)行處理、查詢、分析的工具。它支持類似于傳統(tǒng)RDBMS的SQL語言的查詢語言,一幫助那些熟悉SQL的用戶處理和查詢Hodoop在的數(shù)據(jù),該查詢語言稱為Hive SQL。Hive SQL實(shí)際上先被SQL解析器解析,然后被Hive框架解析成一個MapReduce可執(zhí)行計劃,并按照該計劃生產(chǎn)MapReduce任務(wù)后交給Hadoop集群處理。

????????Spark:盡管MapReduce和Hive能完成海量數(shù)據(jù)的大多數(shù)批處理工作,并且在打數(shù)據(jù)時代稱為企業(yè)大數(shù)據(jù)處理的首選技術(shù),但是其數(shù)據(jù)查詢的延遲一直被詬病,而且也非常不適合迭代計算和DAG(有限無環(huán)圖)計算。由于Spark具有可伸縮、基于內(nèi)存計算能特點(diǎn),且可以直接讀寫Hadoop上任何格式的數(shù)據(jù),較好地滿足了數(shù)據(jù)即時查詢和迭代分析的需求,因此變得越來越流行。Spark是UC Berkeley AMP Lab(加州大學(xué)伯克利分校的 AMP實(shí)驗(yàn)室)所開源的類Hadoop MapReduce的通用并行框架,它擁有Hadoop MapReduce所具有的優(yōu)點(diǎn),但不同MapReduce的是,Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不需要再讀寫HDFS ,因此能更好適用于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)等需要迭代的MapReduce算法。Spark也提供類Live的SQL接口,即Spark SQL,來方便數(shù)據(jù)人員處理和分析數(shù)據(jù)。Spark還有用于處理實(shí)時數(shù)據(jù)的流計算框架Spark Streaming,其基本原理是將實(shí)時流數(shù)據(jù)分成小的時間片段(秒或幾百毫秒),以類似Spark離線批處理的方式來處理這小部分?jǐn)?shù)據(jù)。

????????Storm:MapReduce、Hive和Spark是離線和準(zhǔn)實(shí)時數(shù)據(jù)處理的主要工具,而Storm是實(shí)時處理數(shù)據(jù)的。Storm是Twitter開源的一個類似于Hadoop的實(shí)時數(shù)據(jù)處理框架。Storm對于實(shí)時計算的意義相當(dāng)于Hadoop對于批處理的意義。Hadoop提供了Map和Reduce原語,使對數(shù)據(jù)進(jìn)行批處理變得非常簡單和優(yōu)美。同樣,Storm也對數(shù)據(jù)的實(shí)時計算提供了簡單的Spout和Bolt原語。Storm集群表面上和Hadoop集群非常像,但是在Hadoop上面運(yùn)行的是MapReduce的Job,而在Storm上面運(yùn)行的是Topology(拓?fù)?#xff09;。Storm拓?fù)淙蝿?wù)和Hadoop MapReduce任務(wù)一個非常關(guān)鍵的區(qū)別在于:1個MapReduce Job最終會結(jié)束,而1一個Topology永遠(yuǎn)運(yùn)行(除非顯示的殺掉它,),所以實(shí)際上Storm等實(shí)時任務(wù)的資源使用相比離線MapReduce任務(wù)等要大很多,因?yàn)殡x線任務(wù)運(yùn)行完就釋放掉所使用的計算、內(nèi)存等資源,而Storm等實(shí)時任務(wù)必須一直占有直到被顯式的殺掉。Storm具有低延遲、分布式、可擴(kuò)展、高容錯等特性,可以保證消息不丟失,目前Storm, 類Storm或基于Storm抽象的框架技術(shù)是實(shí)時處理、流處理領(lǐng)域主要采用的技術(shù)。

????????Flink:在數(shù)據(jù)處理領(lǐng)域,批處理任務(wù)和實(shí)時流計算任務(wù)一般被認(rèn)為是兩種不同的任務(wù),一個數(shù)據(jù)項(xiàng)目一般會被設(shè)計為只能處理其中一種任務(wù),例如Storm只支持流處理任務(wù),而MapReduce, Hive只支持批處理任務(wù)。Apache Flink是一個同時面向分布式實(shí)時流處理和批量數(shù)據(jù)處理的開源數(shù)據(jù)平臺,它能基于同一個Flink運(yùn)行時(Flink Runtime),提供支持流處理和批處理兩種類型應(yīng)用的功能。Flink在實(shí)現(xiàn)流處理和批處理時,與傳統(tǒng)的一些方案完全不同,它從另一個視角看待流處理和批處理,將二者統(tǒng)一起來。Flink完全支持流處理,批處理被作為一種特殊的流處理,只是它的數(shù)據(jù)流被定義為有界的而已。基于同一個Flink運(yùn)行時,Flink分別提供了流處理和批處理API,而這兩種API也是實(shí)現(xiàn)上層面向流處理、批處理類型應(yīng)用框架的基礎(chǔ)。

2、數(shù)據(jù)存儲主要技術(shù)

????????HDFS:Hadoop Distributed File System,簡稱FDFS,是一個分布式文件系統(tǒng)。它有一定高度的容錯性和高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS提供了一個高容錯性和高吞吐量的海量數(shù)據(jù)存儲解決方案。在Hadoop的整個架構(gòu)中,HDFS在MapReduce任務(wù)處理過程在中提供了對文件操作的和存儲的的支持,MapReduce在HDFS基礎(chǔ)上實(shí)現(xiàn)了任務(wù)的分發(fā)、跟蹤和執(zhí)行等工作,并收集結(jié)果,兩者相互作用,共同完成了Hadoop分布式集群的主要任務(wù)。

????????HBase:HBase是一種構(gòu)建在HDFS之上的分布式、面向列族的存儲系統(tǒng)。在需要實(shí)時讀寫并隨機(jī)訪問超大規(guī)模數(shù)據(jù)集等場景下,HBase目前是市場上主流的技術(shù)選擇。
HBase技術(shù)來源于Google論文《Bigtable :一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)》。如同Bigtable利用了Google File System提供的分布式數(shù)據(jù)存儲方式一樣,HBase在HDFS之上提供了類似于Bigtable的能力。

????????HBase解決了傳遞數(shù)據(jù)庫的單點(diǎn)性能極限。實(shí)際上,傳統(tǒng)的數(shù)據(jù)庫解決方案,尤其是關(guān)系型數(shù)據(jù)庫也可以通過復(fù)制和分區(qū)的方法來提高單點(diǎn)性能極限,但這些都是后知后覺的,安裝和維護(hù)都非常復(fù)雜。
而HBase從另一個角度處理伸縮性的問題,即通過線性方式從下到上增加節(jié)點(diǎn)來進(jìn)行擴(kuò)展。

?????????????HBase 不是關(guān)系型數(shù)據(jù)庫,也不支持SQL,它的特性如下:

1、大:一個表可以有上億上,上百萬列。
2、面向列:面向列表(簇)的存儲和權(quán)限控制,列(簇)獨(dú)立檢索。
3、稀疏:為空(null)的列不占用存儲空間,因此表可以設(shè)計的非常稀疏。
4、無模式::每一行都有一個可以排序的主鍵和任意多的列。列可以根據(jù)需求動態(tài)增加,同一張表中不同的行可以有截然不同的列。
5、數(shù)據(jù)多版本:每個單元的數(shù)據(jù)可以有多個版本,默認(rèn)情況下,版本號字段分開,它是單元格插入時的時間戳。
6、數(shù)據(jù)類型單一:HBase中數(shù)據(jù)都是字符串,沒有類型。

總結(jié)

以上是生活随笔為你收集整理的大数据处理流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。