大數據認識篇

大數據認識篇 html

什麼是大數據,爲何大數據,咱不說。nginx

處理大數據。web

從一個簡單的需求提及:shell

一、    假設公司有100個域名,各個域名下有更多的子域名,下文子域名也叫作域名。
數據庫

每一個域名對應的nginx log 假設1G.服務器

如今的需求是log數據得存儲一年,天天早上給出每一個域名對應的各類指標,多少ip,4xx,5xx and so on。網絡

作法是:每一個機器上定時任務唄,處理腳本,發送結果到郵箱,每一個域名發一封,呵呵。優化:把結果寫到數據庫,而後寫個腳本處理數據庫,發送到郵箱,就是一封郵件了。分佈式

再優化:把日誌晚上切割後,壓縮發送到一個專門的機器上,寫一個腳本,能夠隨意修改,數據統一,處理方式統一,結果統一。oop

二、    業務擴大,域名多了,日誌數據從1G到1000G。大數據

就拿單機來講,shell腳本很難作處理了,即便作到了,效果很差。這麼大的數據都集中到一個存儲機器,存一年,還佔用網絡速度,確定不行。再說1000G---切割到100G一個,而後shell處理100G這麼多,也耗時耗力。

好吧,大數據來了。

咱如今須要的次日早上發送報告,也就是處理冷數據。

數據集中:

hadoop的hdfs

每一個機器上的log文件是文本格式的,能夠存到每一個機器的數據庫,這樣一來,每一個機器上的log就能夠聯動,可是效率不高,hadoop的hdfs來了,這樣理解:這hdfs控制端查今天公司網站全部的總帶寬,一個命令就好了。看起來不是按個讀取文本文件去查,加起來。把分佈在各個服務器的數據看做了一個整體。

數據分析:

hadoop的MapReduce,不細說。

三、    實時大規模nginx日誌 elk

Elasticsearch + Logstash + Kibana(ELK)是一套開源的日誌管理方案,分析網站的訪問狀況時咱們通常會藉助Google/百度/CNZZ等方式嵌入JS作數據統計,可是當網站訪問異常或者被攻擊時咱們須要在後臺分析如Nginx的具體日誌,而Nginx日誌分割/GoAccess/Awstats都是相對簡單的單節點解決方案,針對分佈式集羣或者數據量級較大時會顯得愛莫能助,而ELK的出現可使咱們從容面對新的挑戰。

Logstash:負責日誌的收集,處理和儲存

Elasticsearch:負責日誌檢索和分析

Kibana:負責日誌的可視化

http://baidu.blog.51cto.com/71938/1676798

四、    如今公司有個計費系統,十分龐大。實時計算出需求用戶的各類指標。

存儲有了hadoop的hdfs,可是mapreduce壓根不對實時數據起做用,ok,storm來了,還有這個:spark

這麼多技術,說個大概吧,他們怎麼組合的。

組合:

    flume-ng+Kafka+Storm+HDFS 實時系統組合

     hadoop:hdfs mapreduce組合

……………………

我該怎麼選擇:spark storm hadoop 什麼關係,怎麼選擇

http://www.aboutyun.com/thread-7569-1-1.html

認識淺顯,歡迎指正

相關文章
相關標籤/搜索