1. 程式人生 > >讀書筆記:大型分散式網站架構設計與實踐(5)

讀書筆記:大型分散式網站架構設計與實踐(5)

5 資料分析

隨著網際網路行業的深入發展,資料的量級呈指數級增長。而資料是非常重要的資訊,對資料進行收集和分析是一直在做的事情。當大資料時代來臨之後,相應地也產生了一些新的資料收集、分析的工具。

5.1 日誌收集

對於線上執行的系統來說,每天都會產生大量日誌資訊,需要對這些日誌進行收集,分析,並做視覺化展示。
ELK是elastic公司提供的一套完整的日誌收集、展示解決方法,是三個產品的首字母縮寫,分別是ElasticSearch、Logstash和Kibana。

ElasticSearch簡稱ES,是一個實時的分散式搜尋和分析引擎,可以用於全文搜尋,結構化搜尋以及分析。它建立在全文搜尋引擎Apache Lucene基礎之上。

LogStash是一個具有實時傳輸能力的資料收集引擎,用來進行資料收集、解析,並將資料傳送給ES。

Kibana為ElasticSearch提供了分析和視覺化的Web平臺。它可以在Elasticsearch的索引中查詢,互動資料,並生成各種維度表格和圖形。

5.2 離線資料分析和流式資料分析

大資料平臺Hadoop主要集中在大資料離線批處理分析領域,而對於資料量不太大以及實時性要求很高的資料分析場景下則效果不太理想。離線資料分析的結果可以通過資料迴流,重新儲存到關係型資料庫中,提供線上的實時查詢服務,如好友推薦、商品推薦等。

與離線資料不同的時,流式資料是實時的,資料的價值隨著時間的流逝而降低,因此需要實時地處理。

Storm是一個開源的分散式實時計算系統、可以簡單可靠地對大量流逝資料進行分析處理。

5.3 資料同步

直接對線上儲存系統進行資料分析會影響系統執行的穩定性。因此需要把資料採集到大資料平臺中進行加工處理,這個過程也即所謂的ETL(資料抽取,清洗,轉換,裝載)過程。然後對於處理完畢的資料,有時候也並不能或不適合在大資料平臺的相關服務中直接使用,而是要反饋回線上的業務系統中,這個過程稱為資料的回寫或匯出。

資料同步就是指資料在不同系統元件之間的匯入匯出工作。比如將DB的資料採集到Hive中,將Hive中的資料匯出給HBase等等。

離線資料同步工具有Sqoop,DataX等。Sqoop是用得比較多的工具,整體框架以Hadoop為核心。DataX是阿里開源的一款外掛式,以通用的異構資料交換為目標的產品。

流式資料同步工具有Heka等。Heka是Mozilla開源的一套資料採集和分析工具,整體結構設計和LogStash差不多。