什麼是大數據?現在發展怎麼樣?

什麼是大數據?現在發展怎麼樣?

大數據是指海量數據或巨量數據,其規模巨大到無法通過目前主流的計算機系統在合理時間內獲取、存儲、管理、處理並提煉以幫助使用者決策。

大數據的4V特徵,即Variety(多樣化)、Volume(大量化)、Velocity(快速化)、Value(價值密度低)。如下圖所示。其中,Variety表示來源多和格式多,數據可以來源於搜索引擎、社交網路、通話記錄、感測器等等,這些數據要麼以結構化形式存儲,要麼以非結構化數據存儲;Volume表示數據量比較大,從TB級別,躍升到PB級別。尤其是在移動互聯時代,視頻、語言等非結構化數據快速增長;Velocity表示數據存在時效性,需要快速處理,並得到結果出來,這一點也是和傳統的數據挖掘技術有著本質的區別;Value表示大量不相關信息,不經過處理則價值較低,屬於價值密度低的數據。

大數據處理流程

一般的大數據處理流程都有以下幾個過程:數據採集、數據存儲、數據處理、數據展現。如下圖所示。

在大數據時代,由於數據種類多,數據大,從結構化的數據到非結構化的數據,數據採集的形式也變得更加複雜而多樣。

當存儲技術的發展變得步履蹣跚,趕不上數據發展的速度時,分散式存儲成為了必然選擇,非結構型數據也對存儲格式提出了新的要求。層出不窮的數據源也使得數據量產生了井噴似的迅猛增長。此時分散式存儲與NoSQL的誕生回應了這樣的需求,解決了大數據存儲的根本難題。

數據處理包括數據計算、分析,這部分是大數據技術的核心,本文剩餘部分將詳細介紹這部分。數據展示指的是通過提供報表等可視化界面反應目前平台或業務運行的各項指標。

大數據的演進

提到大數據技術,最基礎和核心的仍是大數據的分析和計算。在2017年,大數據分析和計算技術仍舊在飛速的發展,無論老勢力Hadoop還是當紅小生Spark,亦或是人工智慧,都在繼續自己的發展和迭代。

目前絕大部分傳統數據計算和數據分析服務均是基於批量數據處理模型:使用ETL系統或OLTP系統進行構造數據存儲,在線的數據服務通過構造SQL語言訪問上述數據存儲並取得分析結果。這套數據處理的方法伴隨著關係型資料庫在工業界的演進而被廣泛採用。但在大數據時代下,伴隨著越來越多的人類活動被信息化、進而數據化,越來越多的數據處理要求被實時化、流式化。Andrew NG揭示大數據未來發展的趨勢就是人工智慧。下面將對批量計算、流式計算以及人工智慧進行詳細介紹,其中人工智慧部分將在下一期中介紹。

批量計算

傳統的批量數據處理模型通常基於如下處理模型:

1. 使用ETL系統或者OLTP系統構造原始的數據存儲,以提供後續的數據服務進行數據分析和數據計算。如下圖所示,用戶裝載數據,系統根據自己的存儲和計算情況,對於裝載的數據進行索引構建等一些列查詢優化工作。因此,對於批量計算,數據一定需要載入到計算機系統,後續計算系統才在數據載入完成後方能進行計算。

2. 用戶或系統主動發起一個計算作用並向上述數據系統進行請求。此時計算系統開始調度(啟動)計算節點進行大量數據計算,該過程的計算量可能巨大,耗時長達數分鐘乃至數小時。同時,由於數據累計的不可及時性,上述計算過程的數據一定是歷史數據,無法保證數據的實時性。

3. 計算結果返回,計算作業完成後將數據以結果集形式返回用戶,或者可能由於計算結果數量巨大保存著數據計算系統中,用戶進行再次數據集成到其他系統。一旦數據結果巨大,整體的數據集成過程漫長,耗時可能長達數分鐘乃至數小時。

典型代表:Hadoop

Hadoop是Apache的一個開源項目,是可以提供開源、可靠、可擴展的分散式計算工具。它主要包括HDFS和MapReduce兩個組件,分別用於解決大數據的存儲和計算。

HDFS是獨立的分散式文件系統,為MapReduce計算框架提供存儲服務,具有較高的容錯性和高可用性,基於塊存儲以流數據模式進行訪問,數據節點之間項目備份。默認存儲塊大小為64M,用戶也可以自定義大小。

HDFS是基於主從結構的分散式文件系統,結構上包括NameNode目錄管理、DataNode的數據存儲和Client的訪問客戶端3部分。NameNode主要負責系統的命名空間、集群的配置管理以及存儲塊的複製;DataNode是分散式文件系統存儲的基本單元;Client為分散式文件系統的應用程序。體系結構如下圖所示。

如上圖所示,NameNode通過主從模式實現高可用性,但是在以前的版本,Standby只能是一個主機。為了實現更高的可靠性,在Hadoop3.0中可以配置超過一個的Standby的NameNode,從而保證更高的可靠型。對於數據存儲,HDFS採用的是多副本的方式來存儲數據,即Client將數據首先通過NameNode獲取數據將要存儲在哪些DataNode上,之後這些存儲到最新數據的DataNode將變更數據以同步或非同步方式同步到其他DataNode上。但是這幾年數據規模的增加遠遠大於人的想像,而這些產生的數據,必然會存在冷熱數據的區分。無論冷熱,數據對於一個公司都是核心資產,誰都不想數據丟失。可是對於冷數據,如果採用多副本方式,會浪費大量的存儲空間。在Hadoop3.0之後,採用Erasure Coding可以大大的降低數據存儲空間的佔用。對於冷數據,可以採用EC來保存,這樣才能降低存儲數據的花銷,而需要時,還可以通過CPU計算來讀取這些數。

MapReduce是一種分散式計算框架,適用於離線大數據計算。採用函數式編程模式,利用Map和Reduce函數來實現複雜的並行計算,主要功能是對一個任務進行分解,以及對結果進行綜合匯總。其中,Map的主要功能是把一個作業任務分解成多個子任務,然後發送到對應的節點伺服器中,接著進行並行計算。Reduce的主要功能把並行計算得到的結果進行歸併後得到的結果返回到中央伺服器。

具體來說,MapReduce是將那些沒有經過處理的海量數據進行數據分片,即分解成多個小數據集;每個Map並行地處理每一個數據集中的數據,然後將結果存儲為<key,value>,並把key值相同的數據進行歸併發送到Reduce處理。原理如下圖所示。

流計算

不同於批量計算模型,流式計算更加強調計算數據流和低時延,流式計算數據處理模型如下:

1. 使用實時集成工具,將數據實時變化傳輸到流式數據存儲(即消息隊列,如RabbitMQ);此時數據的傳輸編程實時化,將長時間累積大量的數據平攤到每個時間點不停地小批量實時傳輸,因此數據集成的時延得以保證。

2. 數據計算環節在流式和批量處理模型差距更大,由於數據集成從累計變成實時,不同於批量計算等待數據集成全部就緒後才啟動計算作業,流式計算作業是一種常駐計算服務,一旦啟動將一直處於等待事件觸發的狀態,一旦小批量數據進入流式數據存儲,流計算立刻計算並迅速得到結果。

3. 不同於批量計算結果數據需要等待數據計算結果完成後,批量將數據傳輸到在線系統;流式計算作業在每次小批量數據計算後可以立刻將數據寫入在線系統,無需等待整個數據的計算結果,可以立刻將數據結果投遞到在線系統,進一步做到實時計算結果的實時化展現。

成過程漫長,耗時可能長達數分鐘乃至數小時。

典型代表:Hadoop

Hadoop是Apache的一個開源項目,是可以提供開源、可靠、可擴展的分散式計算工具。它主要包括HDFS和MapReduce兩個組件,分別用於解決大數據的存儲和計算。

HDFS是獨立的分散式文件系統,為MapReduce計算框架提供存儲服務,具有較高的容錯性和高可用性,基於塊存儲以流數據模式進行訪問,數據節點之間項目備份。默認存儲塊大小為64M,用戶也可以自定義大小。

HDFS是基於主從結構的分散式文件系統,結構上包括NameNode目錄管理、DataNode的數據存儲和Client的訪問客戶端3部分。NameNode主要負責系統的命名空間、集群的配置管理以及存儲塊的複製;DataNode是分散式文件系統存儲的基本單元;Client為分散式文件系統的應用程序。體系結構如下圖所示。

如上圖所示,NameNode通過主從模式實現高可用性,但是在以前的版本,Standby只能是一個主機。為了實現更高的可靠性,在Hadoop3.0中可以配置超過一個的Standby的NameNode,從而保證更高的可靠型。對於數據存儲,HDFS採用的是多副本的方式來存儲數據,即Client將數據首先通過NameNode獲取數據將要存儲在哪些DataNode上,之後這些存儲到最新數據的DataNode將變更數據以同步或非同步方式同步到其他DataNode上。但是這幾年數據規模的增加遠遠大於人的想像,而這些產生的數據,必然會存在冷熱數據的區分。無論冷熱,數據對於一個公司都是核心資產,誰都不想數據丟失。可是對於冷數據,如果採用多副本方式,會浪費大量的存儲空間。在Hadoop3.0之後,採用Erasure Coding可以大大的降低數據存儲空間的佔用。對於冷數據,可以採用EC來保存,這樣才能降低存儲數據的花銷,而需要時,還可以通過CPU計算來讀取這些數。

MapReduce是一種分散式計算框架,適用於離線大數據計算。採用函數式編程模式,利用Map和Reduce函數來實現複雜的並行計算,主要功能是對一個任務進行分解,以及對結果進行綜合匯總。其中,Map的主要功能是把一個作業任務分解成多個子任務,然後發送到對應的節點伺服器中,接著進行並行計算。Reduce的主要功能把並行計算得到的結果進行歸併後得到的結果返回到中央伺服器。

具體來說,MapReduce是將那些沒有經過處理的海量數據進行數據分片,即分解成多個小數據集;每個Map並行地處理每一個數據集中的數據,然後將結果存儲為<key,value>,並把key值相同的數據進行歸併發送到Reduce處理。原理如下圖所示。

現在大數據發展非常好,一線城市薪資都是20K+月薪了。

推薦閱讀:

積夢智能-為中國製造業揭開數據之霧
3. 如何設定分析目標
Nesto - Hulu用戶分析平台的OLAP引擎
大數據時代之徵途計劃
地震運用大數據預測可能性

TAG:數據挖掘 | 大數據分析 |