小白如何學習大數據(附搜狗日誌分析例子)

小白如何學習大數據(附搜狗日誌分析例子)

對公司初期來說,由於數據量不夠,一個mysql就解決了所有數據的問題。也就談不到大數據了。當進入高速發展期,數據量規模逐漸變大,數據的重要性也慢慢凸顯出來,最明顯的就是運營類的數據,可以指導公司的戰略和產品的研發方向。接下來我們就談談,怎麼從0開始,去搭建一個大數據平臺。
小白如何學習大數據(附搜狗日誌分析例子)

如上圖所示,展示了一個成熟的大數據平臺架構。當然這個也不是一兩個人所能做到的。對於大部分初創公司來說,最主要的就是先理解了大數據的概念,然後搭建一個核心的功能,之後按照需求逐步完善。當你有了系統主體以後,你的系統首先是一個可運行的系統,這個系統已經可以簡單地被用戶開始使用了,比如跑跑簡單的數據分析等等。我非常推崇一句話就是“好的架構不是設計出來的而是演化出來的”。

1:數據的來源 1)非格式化數據:用戶的訪問日誌 2)格式化數據:用戶的訂單數據等等

2:數據的存儲 創建數據倉庫,只用做查詢用途。

小白如何學習大數據(附搜狗日誌分析例子)

傳統企業的數據倉庫一般用oracle,mysql實現。互聯網的到來,數據量突飛猛進,數據已經無法滿足需求,HDFS,HBase,Hive的出現,很好的解決了這個問題。

3:數據的計算

對於存儲在數據倉庫的數據,再進行各種數據的計算。

HDFS的數據,可以通過MapReduce進行計算。這個不適用於實時性高的場合。

對於實時性要求高的情況下,可以採用spark組件進行數據計算。

Hive支持sql語句,其實現的方式也是通過MapReduce任務進行計算的。

上述幾種方式也可以組合使用。通常情況下,數據平臺會有很多數據的計算任務,不同的任務的資源調度通過yarn來實現。

最後我們實現一個搜狗日誌分析的簡單例子(單機版,不涉及集群):

小白如何學習大數據(附搜狗日誌分析例子)

2)數據的存儲:將下載的搜狗日誌數據上傳的linux服務器,然後通過hdfs命令,導入hdfs。

小白如何學習大數據(附搜狗日誌分析例子)

3)數據的計算:

如下圖紅字所示,把符合這兩列等於1,2的數據過濾出來

小白如何學習大數據(附搜狗日誌分析例子)

這裡用mapReduce去實現。MapReduce的基本原理是先拆分、再合併-----> 分佈式計算。

原理如下圖所示:

小白如何學習大數據(附搜狗日誌分析例子)

代碼示例:

引入hadoop依賴

小白如何學習大數據(附搜狗日誌分析例子)

1:主任務 SogouMain

小白如何學習大數據(附搜狗日誌分析例子)

2:mapReduce任務 sogouMapper

小白如何學習大數據(附搜狗日誌分析例子)

3:打成jar包,上傳至linux服務器,並執行

小白如何學習大數據(附搜狗日誌分析例子)

4:執行完成後,生成兩個文件。一個是狀態文件,一個是數據文件

小白如何學習大數據(附搜狗日誌分析例子)

part-r-00000就是最終的數據文件,再下載到linux服務器

小白如何學習大數據(附搜狗日誌分析例子)


分享到:


相關文章: