Hadoop项目实战-用户行为分析之应用概述(二)
1.概述
本課程的視頻教程地址:《項(xiàng)目整體概述》
本節(jié)給大家分享的主題如下圖所示:
下面我開(kāi)始為大家分享第二節(jié)的內(nèi)容——《項(xiàng)目整體概述》,下面開(kāi)始今天的分享內(nèi)容。
2.內(nèi)容
從本節(jié)開(kāi)始,我們將進(jìn)入到Hadoop項(xiàng)目的整體概述一節(jié)學(xué)習(xí),本節(jié)課程為大家介紹的主要知識(shí)點(diǎn)有一下內(nèi)容,如下圖所示:
下面,我們首先來(lái)看看項(xiàng)目的整體流程,其流程如下圖所示:
項(xiàng)目流程可以分為4個(gè)模塊,他們分別是數(shù)據(jù)收集,集群存儲(chǔ),分析計(jì)算和結(jié)果處理。
下面我分別為大家講解這4個(gè)模塊的作用。 我們知道,在做統(tǒng)計(jì)時(shí),數(shù)據(jù)源是前提,有了數(shù)據(jù)源我們才能在此基礎(chǔ)上做相應(yīng)的計(jì)算和分析。 收集數(shù)據(jù)一般都有專門的集群去負(fù)責(zé)收集這方面的工作。
在完成收集工作后,我們需要將這些文件集中起來(lái),這里存儲(chǔ)采用的是分布式文件系統(tǒng)(HDFS)。我們將收集的數(shù)據(jù) 按一定的規(guī)則分類,并存儲(chǔ)在指定的HDFS文件系統(tǒng)中。從收集到存儲(chǔ),數(shù)據(jù)源的準(zhǔn)備階段就算完成了。接著,我們可以對(duì)數(shù)據(jù)源進(jìn)行相關(guān)指標(biāo)的分析與計(jì)算,在Hadoop 2.x 版本后編程模型有了良好的拓展,除了支持MapReduce,還支持其以外的模型,如:Spark。另外,還有Hive,Pig,Tez 等相關(guān)技術(shù),來(lái)輔助我們完成分析計(jì)算這塊,所以在分析,計(jì)算這塊技術(shù)選擇很多,本課程選用MapReduce和Hive組合來(lái) 完成相關(guān)工作,其它相關(guān)技術(shù)大家可以在課下對(duì)其做相應(yīng)的補(bǔ)充學(xué)習(xí)。
完成分析計(jì)算后,我們會(huì)得到統(tǒng)計(jì)后的結(jié)果,這些結(jié)果是存放在HDFS文件系統(tǒng)上的,如何去處理這些結(jié)果,讓這些結(jié)果變得 可視化。這就涉及到最后一個(gè)模塊--結(jié)果處理。由于這些結(jié)果是存儲(chǔ)在HDFS文件系統(tǒng)中的,為了及時(shí)響應(yīng)外界請(qǐng)求,我們需要將HDFS的數(shù)據(jù)導(dǎo)出到關(guān)系型數(shù)據(jù)庫(kù)(如:Mysql) 或非關(guān)系型數(shù)據(jù)庫(kù)(如:HBase)。在導(dǎo)入到關(guān)系型數(shù)據(jù)庫(kù)時(shí),我們需要借助一個(gè)Hadoop組件--Sqoop,這是一款開(kāi)源的工具, 主要用于在Hadoop與傳統(tǒng)的數(shù)據(jù)庫(kù)(如:Mysql)間進(jìn)行數(shù)據(jù)的傳遞,可將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(如:Mysql)中的數(shù)據(jù)導(dǎo)入到 Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫(kù)。在HDFS與HBase之間進(jìn)行數(shù)據(jù)傳遞時(shí),我們可以直接使用 HBase提供的導(dǎo)入與導(dǎo)出工具,這些工具包含在HBase的JAR包中。他們使用MapReduce進(jìn)行導(dǎo)入導(dǎo)出操作,可以將數(shù)據(jù)由 HBase導(dǎo)出到HDFS,或者是將HDFS上的數(shù)據(jù)導(dǎo)出到HBase。最后,我們將數(shù)據(jù)庫(kù)中的結(jié)果通過(guò)Thrift這樣的RPC協(xié)議,對(duì)外提供數(shù)據(jù)接口。
在項(xiàng)目流程中,我講過(guò)數(shù)據(jù)收集模塊,下面為大家詳細(xì)講解這些數(shù)據(jù)源的獲取方式。 如下圖所示:
數(shù)據(jù)源的產(chǎn)生包含:
1.Web日志(如Nginx,JBoss,WebLogic等一些Web容器記錄產(chǎn)生的日志信息)
2.SystemLog(系統(tǒng)日志),這部分日志包含服務(wù)端應(yīng)用記錄的日志。
3.DB(存于數(shù)據(jù)庫(kù)中的數(shù)據(jù))
在實(shí)際業(yè)務(wù)中,我們一般采用Flume NG集群來(lái)收集分發(fā)日志,它是一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng), Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),Flume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理, 并寫到各種數(shù)據(jù)接受方(可定制)的能力,如收集Web日志和SystemLog日志,我們可以分別在Web日志節(jié)點(diǎn)和SystemLog節(jié)點(diǎn)部署Flume的Agent即可,而DB(如:存在于Mysql數(shù)據(jù)庫(kù)中的數(shù)據(jù)),我們可以使用ETL工程抽取清洗后,在由Agent代理發(fā)送到Flume,最后Flume將數(shù)據(jù)存儲(chǔ)到HDFS文件系統(tǒng)上。
關(guān)于Flume的集群的收集演示過(guò)程,大家可以參考視頻進(jìn)行演示——《項(xiàng)目整體概述》
3.結(jié)束語(yǔ)
這就是本節(jié)的主要內(nèi)容,主要就對(duì)Hadoop項(xiàng)目的整體流程進(jìn)行概述,對(duì)后續(xù)學(xué)習(xí)Hadoop項(xiàng)目實(shí)戰(zhàn)做一個(gè)準(zhǔn)備工作。
如果本教程能幫助到您,希望您能點(diǎn)擊進(jìn)去觀看一下,謝謝您的支持!
轉(zhuǎn)載請(qǐng)注明出處,謝謝合作!
?本課程的視頻教程地址:《項(xiàng)目整體概述》
轉(zhuǎn)載于:https://www.cnblogs.com/smartloli/p/4564252.html
總結(jié)
以上是生活随笔為你收集整理的Hadoop项目实战-用户行为分析之应用概述(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 那些年我们踩到过的坑(二):3.1 版
- 下一篇: 索引键的唯一性(2/4):唯一与非唯一聚