Hadoop專案實戰-使用者行為分析之應用概述(二)

哥不是小蘿莉發表於2015-06-10

1.概述

  本課程的視訊教程地址:《專案整體概述

  本節給大家分享的主題如下圖所示:

  下面我開始為大家分享第二節的內容——專案整體概述》,下面開始今天的分享內容。

2.內容

  從本節開始,我們將進入到Hadoop專案的整體概述一節學習,本節課程為大家介紹的主要知識點有一下內容,如下圖所示:

  下面,我們首先來看看專案的整體流程,其流程如下圖所示:

  專案流程可以分為4個模組,他們分別是資料收集,叢集儲存,分析計算和結果處理。

  下面我分別為大家講解這4個模組的作用。 我們知道,在做統計時,資料來源是前提,有了資料來源我們才能在此基礎上做相應的計算和分析。 收集資料一般都有專門的叢集去負責收集這方面的工作。

  在完成收集工作後,我們需要將這些檔案集中起來,這裡儲存採用的是分散式檔案系統(HDFS)。我們將收集的資料 按一定的規則分類,並儲存在指定的HDFS檔案系統中。從收集到儲存,資料來源的準備階段就算完成了。接著,我們可以對資料來源進行相關指標的分析與計算,在Hadoop 2.x 版本後程式設計模型有了良好的擴充,除了支援MapReduce,還支援其以外的模型,如:Spark。另外,還有Hive,Pig,Tez 等相關技術,來輔助我們完成分析計算這塊,所以在分析,計算這塊技術選擇很多,本課程選用MapReduce和Hive組合來 完成相關工作,其它相關技術大家可以在課下對其做相應的補充學習。

  完成分析計算後,我們會得到統計後的結果,這些結果是存放在HDFS檔案系統上的,如何去處理這些結果,讓這些結果變得 視覺化。這就涉及到最後一個模組--結果處理。由於這些結果是儲存在HDFS檔案系統中的,為了及時響應外界請求,我們需要將HDFS的資料匯出到關係型資料庫(如:Mysql) 或非關係型資料庫(如:HBase)。在匯入到關係型資料庫時,我們需要藉助一個Hadoop元件--Sqoop,這是一款開源的工具, 主要用於在Hadoop與傳統的資料庫(如:Mysql)間進行資料的傳遞,可將一個關係型資料庫(如:Mysql)中的資料匯入到 Hadoop的HDFS中,也可以將HDFS的資料匯入到關係型資料庫。在HDFS與HBase之間進行資料傳遞時,我們可以直接使用 HBase提供的匯入與匯出工具,這些工具包含在HBase的JAR包中。他們使用MapReduce進行匯入匯出操作,可以將資料由 HBase匯出到HDFS,或者是將HDFS上的資料匯出到HBase。最後,我們將資料庫中的結果通過Thrift這樣的RPC協議,對外提供資料介面。

  在專案流程中,我講過資料收集模組,下面為大家詳細講解這些資料來源的獲取方式。 如下圖所示:

  資料來源的產生包含:

  1.Web日誌(如Nginx,JBoss,WebLogic等一些Web容器記錄產生的日誌資訊)

  2.SystemLog(系統日誌),這部分日誌包含服務端應用記錄的日誌。

  3.DB(存於資料庫中的資料)

  在實際業務中,我們一般採用Flume NG叢集來收集分發日誌,它是一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統, Flume支援在日誌系統中定製各類資料傳送方,用於收集資料;同時,Flume提供對資料進行簡單處理, 並寫到各種資料接受方(可定製)的能力,如收集Web日誌和SystemLog日誌,我們可以分別在Web日誌節點和SystemLog節點部署Flume的Agent即可,而DB(如:存在於Mysql資料庫中的資料),我們可以使用ETL工程抽取清洗後,在由Agent代理髮送到Flume,最後Flume將資料儲存到HDFS檔案系統上。

  關於Flume的叢集的收集演示過程,大家可以參考視訊進行演示——《專案整體概述

3.結束語

  這就是本節的主要內容,主要就對Hadoop專案的整體流程進行概述,對後續學習Hadoop專案實戰做一個準備工作。

  如果本教程能幫助到您,希望您能點選進去觀看一下,謝謝您的支援!

  轉載請註明出處,謝謝合作!

   本課程的視訊教程地址:《專案整體概述

相關文章