本文主要涉及到的知識如下:
- 什麼是大數據,大數據的核心問題是什麼?
- Hadoop的理論來源
什麼是大數據,大數據的核心問題是什麼
在瞭解大數據的概念之前,我們需要先了解以下幾個概念:
(1)OLTP:On-Line Transaction Processing(聯機事務處理過程),也稱爲面向交易的處理過程,其基本特徵是前臺接收的用戶數據可以立即傳送到計算中心進行處理,並在很短的時間內給出處理結果,是對用戶操作快速響應的方式之一。OLTP是傳統的關係型數據庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易:
開啓事務
從轉出賬號中扣錢
往轉入賬號中加錢
提交事務
(2)OLAP:On-Line Analytic Processing(聯機分析處理過程),OLAP是數據倉庫系統的主要應用,支持複雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。例如商品推薦:
抽取(讀取)歷史訂單
分析歷史訂單,找到最受歡迎的商品
展示結果
OLTP | OLAP |
---|---|
用戶 | 操作人員,低層管理人員 |
功能 | 日常操作處理 |
DB設計 | 面向應用 |
數據 | 當前的,最新的、細節的、二維的、分離的 |
存取 | 讀/寫數十條記錄 |
工作單位 | 簡單的事務 |
DB大小 | 100MB – GB |
(3)數據倉庫:Data Warehouse,可簡寫爲DW或DWH,是爲企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它是單個數據存儲,出於分析性報告和決策支持目的而創建。
我們所要說的大數據,本身是數據倉庫的一種實現方式。下面我們開始說明大數據的概念。
定義:大數據是指在一定時間範圍內無法使用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。大數據的五大特徵:
(1)Volume:大量;
(2)Velocity:高速;
(3)Variety:多樣;
(4)Value:價值;
(5)Veracity:真實性;大數據的核心問題:
(1)數據存儲:分佈式文件系統(分佈式存儲)
(2)數據計算:分佈式計算
Hadoop的理論來源
(1) GFS: Google File System —-> HDFS: hadoop distributed file system
分佈式文件系統,將大文件以數據塊(128M,不足也是佔有128M的空間)的形式進行分割並保存,原理如下:
分佈式文件系統的原理圖中所涉及的機架感知原理如下:
分佈式文件系統的原理圖中所涉及的倒排索引(分詞、統計、排序等)原理如下:
(2) MapReduce:來源:PageRank問題(網頁排名)
關於網頁排名,它是按相關性的順序進行排序展示的,具體原理圖如下:
從上圖可以看出網頁3被引用的次數最多,所以在展示時,它被放在了最前面,因爲它是最重要的。如果光說明這一些可能要理解Hadoop中MapReduce還有點抽象,實際上是這樣的,上面只涉及到4個網頁,如果現在有幾百萬、幾千萬,甚至幾億個網頁需要進行PageRank的計算,如此龐大的計算量如果放到單個計算機去計算無疑是不現實的,所以Google提出了MapReduce思想,即將一個巨大的任務進行拆分,拆分爲多個小任務,這樣普通的計算機就能很快計算出結果,最後再把這些結果整合起來,就可以得到最終結果,從而實現了PageRank。
根據PageRank的思想,Hadoop中MapReduce的原理如下:
(3) BigTable:大表 —-> HBase
BigTable是Google設計的分佈式數據存儲系統,用來處理海量的數據的一種非關係型的數據庫。我們以HBase來簡單的說明一下大表的特點: