大數據應用開發流程

通常將大數據應用開發分為五個步驟:獲取、存儲、處理、訪問以及編製,獲取是指獲取一些輔助數據,例如來自CRM、生產數據(ODS)的數據,並將其載入入分散式系統(如Hadoop)為下一環節處理做準備。存儲是指對分散式文件系統(GFS)或NoSQL分散式存儲系統、數據格式)、壓縮和數據模型的決策。處理是指將採集的原始數據導入到大數據管理系統,並將其轉化為可用於分析和查詢的數據集。分析是指對已處理過的數據集運用各種分析查詢,獲得想要知道的答案和見解。編排是指自動地安排和協調各種執行獲取、處理、分析的過程。大數據應用開發的流程如下圖所示:
 

通過點擊流分析來介紹大數據應用開發流程中的每一步如何實現。在點擊流分析的例子中,利用分散式文件系統(GFS)來存儲數據,通過Flume 獲取ingestion網站日誌文件及其他輔助數據並導入到分散式系統中。同時,利用Spark 來處理數據,通過連接商業智慧工具,分散式系統交互地進行數據處理查詢,並利用工具將操作過程編製成單一的工作流程。

1)大數據獲取

有多種獲取數據並導入至大數據管理系統的方法:

①文件傳輸∶此方法適合一次性傳輸文件,對於本任務面臨可靠的大規模點擊流數據獲取,將不適用。

②Sqoop∶ Sqoop 是Hadoop 生態系統提供的將關係型數據管理系統等外部數據導入大數據管理系統的工具。

③Kafka∶ Kafka的架構用於將大規模的日誌文件可靠地從網路伺服器傳輸到分散式系統中。

④Flume∶Flume工具和Kafka類似,也能可靠地將大量數據(如日誌文件)傳輸至分散式系統中。Kafka和Flume都適用於獲取日誌數據,都可以提供可靠的、可擴展的日誌數據獲取。

2)大數據存儲

在數據處理的每個步驟中,包括初始數據、數據變換的中間結果及最終的數據集都需要存儲。由於每一個數據處理步驟的數據集都有不同的目的,選擇數據存儲的時候要確保數據的形式及模型和數據相匹配。

原始數據的存儲是將文本格式的數據存儲到分散式系統中。分散式系統具有以下一些優點:

①在序列數據處理過程中,需要通過多條記錄來進行批處理轉換;

②分散式系統可以高效率地通過批處理,處理大規模數據。

3)大數據處理

使用Flume獲取點擊流數據,網路伺服器上的原始數據在分析前需要進行清洗。例如,需要移除無效和空缺的日誌數據、需要刪除這些重複數據。清洗完數據後,還要將數據進行統一ID編號,在處理數據前需要對點擊數據做進一步的處理和分析,包括對數據以每天或每小時為單位進行匯總,這能更快地進行之後的查詢操作。事實上,對數據進行預處理是為了之後能高效地進行查詢操作。大數據處理需要經歷以下四步:

①數據清洗清理原始數據。

②數據抽取∶從原始點擊數據流中提取出需要的數據。

③數據轉換∶對提取後的數據進行轉換,以便之後產生處理後的數據集。

④數據存儲∶存儲在分散式文件系統中的數據支援高性能查詢方式。

4)大數據分析

數據經過獲取和處理後,將通過分析數據來獲得想要了解的知識及答案。商業分析師通過以下幾個工具來探索和分析數據:

①可視化(visualization)和商業智慧工具(BI),例如Tableau和MicroStrategy.

②統計分析工具,例如R或Python。

③基於機器學習的高級分析,例如Mahout和Spark MLlib。

④SQL。

5)大數據編製

數據分析經常臨時性的需要,需要進行自動化編製。編製點擊流分析的步驟如下:

首先,在獲取數據階段,通過Flume將數據連續傳輸到分散式系統中。

其次, 在數據處理階段, 因為在一天結束時終止所有連接是常見的, 故採用每天執行會話演算法在開始處理工作數據流前,驗證Flume寫入分散式系統的當天數據。這種同步驗證方式是常見的,因為通過簡單地查看當前日期分區的情況,可以校驗當前日期數據是否開始寫入大數據管理系統。