大數據技術背景介紹(開號篇)

1、什麼是大數據?

大數據(Big Data),指無法在一定時間範圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。

大數據的5V特點(IBM提出):

  • Volume(大量)——數據的大小決定所考慮的數據的價值和潛在的信息;

  • Velocity(高速)——指獲得數據的速度;

  • Variety(多樣)——指數據類型的多樣性;

  • Value(價值)——合理運用大數據,以低成本創造高價值;

  • Veracity(真實性)——數據的質量;

2、大數據的意義

現在的社會是一個高速發展的社會,科技發達,信息流通,人們之間的交流越來越密切,生活也越來越方便,大數據就是這個高科技時代的產物。阿里巴巴創辦人馬雲來臺演講中就提到,未來的時代將不是IT時代,而是DT的時代,DT就是Data Technology數據科技,顯示大數據對於阿里巴巴集團來說舉足輕重。

有人把數據比喻爲蘊藏能量的煤礦。煤炭按照性質有焦煤、無煙煤、肥煤、貧煤等分類,而露天煤礦、深山煤礦的挖掘成本又不一樣。與此類似,大數據並不在“大”,而在於“有用”。價值含量、挖掘成本比數量更爲重要。對於很多行業而言,如何利用這些大規模數據是贏得競爭的關鍵。大數據的價值體現在以下幾個方面:

  • 對大量消費者提供產品或服務的企業可以利用大數據進行精準營

  • 做小而美模式的中小微企業可以利用大數據做服務轉型

  • 面臨互聯網壓力之下必須轉型的傳統企業需要與時俱進充分利用大數據的價值

3、大數據的典型案例

A、啤酒與尿布

全球零售業巨頭沃爾瑪在對消費者購物行爲分析時發現,男性顧客在購買嬰兒尿片時,常常會順便搭配幾瓶啤酒來犒勞自己,於是嘗試推出了將啤酒和尿布擺在一起的促銷手段。沒想到這個舉措居然使尿布和啤酒的銷量都大幅增加了。如今,“啤酒+尿布”的數據分析成果早已成了大數據技術應用的經典案例,被人津津樂道。

這裏寫圖片描述

B、大數據與喬布斯癌症治療

喬布斯是世界上第一個對自身所有DNA和腫瘤DNA進行排序的人。爲此,他支付了高達幾十萬美元的費用。他得到的不是樣本,而是包括整個基因的數據文檔。醫生按照所有基因按需下藥,最終這種方式幫助喬布斯延長了好幾年的生命。

這裏寫圖片描述

C、 QQ圈子把前女友推薦給未婚妻

2012年3月騰訊推出QQ圈子,按共同好友的連鎖反應攤開用戶的人際關係網,把用戶的前女友推薦給未婚妻,把同學同事朋友圈子分門別類,利用大數據處理能力給人帶來“震撼”。

D、意料之外:胸部最大的是新疆妹

淘寶數據平臺顯示,購買最多的文胸尺碼爲B罩杯。B罩杯佔比達41.45%,其中又以75B的銷量最好。其次是A罩杯,購買佔比達25.26%,C罩杯只有8.96%。在文胸顏色中,黑色最爲暢銷。以省市排名,胸部最大的是新疆妹子。

4、OLTP與OLAP

A、OLTP

OLTP,即On-Line Transaction Processing(聯機事務處理過程),也稱爲面向交易的處理過程,其基本特徵死前臺接收的用戶數據可以立即傳送到計算中心進行處理,並在很短的時間內給出處理結果,是對用戶操作快速響應的方式之一。衡量聯機事務處理結果的一個重要指標是系統性能,具體體現爲實時請求-響應時間(Response Time),即用戶在終端輸入數據之後,到計算機對這個請求給出答覆所需要的時間。OLTP是由前臺、應用、數據庫共同完成的,處理快慢以及處理程度取決於數據庫引擎、服務器、應用引擎。OLTP是傳統的關係型數據庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。

OLTP據有一些明顯的特徵:1)支持大量併發用戶定期添加和修改數據;2)提供用於支持單位日常運營的技術基礎結構;3)包含大量數據,其中包括用於驗證事務的大量數據;4)個別事務能夠很快完成,並且只需訪問相對較少的數據;5)交易一般是確定的,故OLTP是對確定性的數據進行存取;6)併發性要求高並且嚴格的要求事務完整和安全;7)實時性要求高;8)數據量不是特別大;9)系統結構複雜等。

典型案例:銀行轉賬

這裏寫圖片描述

B、OLAP

OLAP,即On-Line Analytical Processing(聯機分析處理過程),其是數據倉庫系統的主要應用,支持複雜的分析操作,側重決策支持,並且提供直觀易懂的查詢結果。OLAP具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特徵。其中,F是快速性(Fast),指系統能在數秒內對用戶的多數分析要求做出反應;A是可分析性(Analysis),指用戶無需編程就可以定義新的專門計算,將其作爲分析的一部分,並以用戶所希望的方式給出報告;M是多維性(Multi-dimensional),指提供對數據分析的多維書體和分析;I是信息性(Information),指能及時獲得信息,並且管理大量信息。

OLAP的主要特點,是直接仿照用戶的多角度思考模式,預先爲用戶組建多維的數據模型,在這裏,維指的是用戶的分析角度。例如對銷售數據的分析,時間週期是一個維度,產品類型、分銷渠道、地理分佈、客戶羣類也分別是一個維度。一旦多維數據模型建立完成,用戶就可以快速地從各個分析角度獲取數據,也能動態地在各個角度之間切換或者進行多角度綜合分析,具有極大的分析靈活性。這也是聯機分析處理被廣泛關注的根本原因,它從設計理念和真正實現上都與傳統的管理信息系統有着本質的區別。

典型案例:商品推薦

這裏寫圖片描述

C、OLTP與OLAP的比較:

| | OLTP | OLAP
|用戶 | 操作人員,底層管理人員 | 決策人員,高級管理人員 |
| 功能 | 日常操作處理 | 分析決策 |
| DB設計 面向應用 | 面向主題 |
| 數據 | 當前的,最新的,細節的,二維的、分立的 | 歷史的,聚集的,多維的,集成的,統一的 |
| 存取 | 讀/寫數十條記錄 | 讀取上百萬條記錄 |
| 工作單位 | 簡單的事務 | 複雜的查詢 |
| DB大小 | 100MB-GB | 100GB-TB |

5、數據倉庫

數據倉庫,英文名稱爲Data Warehouse,可簡寫爲DW或DWH。數據倉庫的目的,是構建面向分析的集成化數據環境,爲企業提供分析性報告和決策支持(Decision Support)。其實數據倉庫本身並不“生產”任何數據,同時也不需要“消費”任何數據,數據來源於外部,並且開放給外部應用,這也是爲什麼它叫“倉庫”,而不叫“工廠”的原因。

這裏寫圖片描述

從上圖可以看出,數據倉庫的基本架構主要包含的是數據的流入和流程過程,可以分爲三大部分——數據源、數據倉庫(包括數據存儲及管理和數據集市)以及數據應用(前端展示)。數據倉庫的數據來自於不同的數據源,並提供多樣的數據應用,數據自左向右流入數據倉庫後向上層應用程序開放應用,而數據倉庫只是中間集成化數據管理的一個平臺。數據倉庫從各數據源獲取數據及在數據倉庫內的轉換和流動,都可以認爲是ETL(抽取Extra,轉化Transfer,裝載Load)過程,ETL是數據倉庫的流水線,也可以認爲是數據倉庫的血液,它維繫着數據倉庫中數據的新陳代謝,而數據倉庫日常管理和維護工作的大部分精力就是保持ETL的正常運作和穩定。

6、HADOOP思想的起源

首先簡單介紹下google,google旗下有非常多的產品,如Google搜索引擎,Gmail郵件,安卓操作系統,Google地圖,Google地球,Google學術,Google翻譯,Google+等,下一步Google What?這些產品爲我們的生活帶來了巨大的變革,可以說在這個世紀,如果你不會用Google,你的生活質量也不會怎麼高。

下面來看看google的低成本之道,這四個方面決定了google的成本很低,利潤自然就高:

  • 不使用超級計算機,不使用存儲(淘寶的去i,去e,去o之路);

  • 大量使用普通的pc服務器(去掉機箱,外設,硬盤),提供有冗餘的集羣服務;

  • 全世界多個數據中心,有些甚至還附帶發電廠;

  • 運營商向google倒付費。

這裏寫圖片描述

然後講講任何搜索引擎都會面臨的幾個難題,google自然也會遇到,但正是google的解決方案才成就了今天的Hadoop。

a. 大量的網頁如何存儲?

b. 海量的網頁如何搜索?(搜索算法)

c. 海量的網頁如何排名?(Page-Rank計算問題)

針對如上三個問題,google是怎麼解決的呢?google發表了三篇論文(這也就是Hadoop的思想來源)。

A、《The Google File System》

GFS(Google File System:Google文件系統)是一個可擴展的分佈式文件系統,用於大型的、分佈式的、對大量數據進行訪問的應用。它運行於廉價的普通硬件之上,並提供容錯功能,同時它還可以給大量的用戶提供總體性能較高的服務。

這裏寫圖片描述

B、《MapReduce:Simplified Data Processing OnLarge Clusters》

MapReduce最早是由google公司研究提出的一種面向大規模數據處理的並行計算模型和方法,google公司設計MapReduce的初衷主要是爲了解決其搜索引擎中大規模網頁數據的並行化處理。概念“Map(映射)”和“Reduce(規約)”,是MapReduce的主要思想,它們都是從函數式編程語言裏借鑑來的,也有從矢量編程語言裏借鑑來的特性。MapReduce極大地方便了編程人員在不會分佈式並行編程的情況下,將自己的程序運行於分佈式系統之上。當前的軟件實現是指定一個Map函數,用來把一組鍵值對映射成一組新的鍵值對,指定併發的Reduce函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

這裏寫圖片描述

C、《Bigtable:A Distributed Storage Systemfor Structured Data》

BigTable是Google設計的分佈式數據存儲系統,用來處理海量數據的一種非關係型的數據庫.BigTable是一個用於管理結構型數據的分佈式存儲系統,被設計爲可擴展到很大規模:通過數以千臺的機器存儲PB級數據。BigTable實現了幾個目標:廣泛適用、可擴展、高性能和高可用。

這裏寫圖片描述

7、HADOOP的產生

Hadoop是什麼?Hadoop不是指具體的一個框架或者組件,它是Apache軟件基金會下用Java語言開發的一個開源分佈式計算平臺,實現在大量計算機組成的集羣中對海量數據進行分佈式計算,適合大數據的分佈式存儲和計算。

Hadoop名字不是一個縮寫,而是一個生造出來的詞,是以Hadoop之父Doug Cutting兒子的毛絨玩具象命名的。2003-2004年,Google公佈了部分GFS和MapReduce思想的細節,受此啓發的Doug Cutting等人用2年的業餘時間實現了DFS和MapReduce機制,使Nutch性能飆升,隨後Yahoo招安Doug Gutting及其項目。2005年,Hadoop作爲Lucene的子項目Nutch的一部分正式引入Apache基金會,2006年2月被分離出來,成爲一套完整獨立的軟件,起名爲Hadoop。

這裏寫圖片描述

8、HADOOP框架

Apache Hadoop是一款支持數據密集型分佈式應用並以Apache 2.0許可協議發佈的開源軟件框架,它支持在以商品硬件構建的大型集羣上運行應用程序。Hadoop框架透明地爲應用程序提供可靠性和數據移動,它實現了名爲MapReduce的編程範式:應用程序被分割成許多小部分,而每個部分都能在集羣中的任意節點上執行或重新執行。它主要擁有以下幾個優點:

a. 高可靠性:Hadoop按位存儲和處理數據的能力值得人們信賴;

b. 高擴展性:Hadoop是在可用的計算機集羣間分配數據並完成計算任務,這些集羣可以方便地擴展到數以千計的節點中;

c. 高效性:Hadoop能夠在節點之間動態地移動數據,並保持各個節點的動態平衡,因此處理速度非常快;

d. 高容錯性:Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配;

e. 低成本:Hadoop是開源的,項目的軟件成本因而得以大大降低。

這裏寫圖片描述

9、HADOOP家族部分成員介紹

HDFS——Hadoop分佈式文件系統,被設計成適合部署於通用、低廉的硬件之上,有着高容錯性、高吞吐量、高可靠性等特點;

MapReduce——一種編程模型,用於大規模數據集的並行運算,用Map和Reduce兩個函數編程實現基本的並行計算任務,而且還提供了抽象的操作和並行編程接口,以簡單方便地完成大規模數據的編程和計算處理;

YARN——一種新的Hadoop資源管理器,它是一個通用資源管理系統,可爲上層應用提供統一的資源管理和調度,它的引入爲集羣在利用率、資源統一管理和數據共享等方面帶來了巨大好處;

HBase——HBase是一個分佈式的、面向列的開源數據庫,與一般的關係型數據庫不同,它適合於非結構化數據存儲與查詢,具有高可靠性、高性能、面向列和可伸縮等特點;

Hive——基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換爲MapReduce任務進行運行;

Pig——一種數據流語言和運行環境,用於檢索非常大的數據集,爲大型數據集的處理提供了一個更高層次的抽象。Pig包括兩部分:一是用於描述數據流的語言,稱爲Pig Latin;二是用於運行Pig Latin程序的執行環境;

Flume——Cloudera提供的一個高可用、高可靠、分佈式的海量日誌採集、聚合和傳輸的系統。Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,還提供對數據進行簡單處理,並寫到各種數據接收方;

Sqoop——一款開源工具,主要用於在Hadoop(Hive)與傳統的數據庫(MySql、Oracle等)之間進行數據傳遞,可以將一個關係型數據庫中的數據導入到Hadoop的HDFS中,也可以將HDFS中的數據導進到關係型數據庫中;

Zookeeper——一個分佈式的、開放源碼的分佈式應用程序協調服務,是Hadoop和HBase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等;

HUE——一個開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來,最後由Cloudera公司將其貢獻給Apache基金會的Hadoop社區,它是基於Python Web框架Django實現。通過使用HUE可以在瀏覽器端的Web控制檯上與Hadoop集羣進行交互來分析處理數據,例如操作HDFS上的數據、運行MapReduce Job、執行Hive的SQL語句、瀏覽HBase數據庫等;

Storm——一個開源、分佈式、高容錯的實時大數據處理架構,它使得持續不斷的流計算變得容易,彌補了Hadoop批處理所不能滿足的實時要求,Storm經常用於實時分析、在線機器學習、持續計算、分佈式遠程調用和ETL等領域;

Spark——專爲大規模數據處理而設計的快速通用的計算引擎,它擁有Hadoop MapReduce所具有的優點,但不同於MapReduce的是——Job中間的輸出結果可以保存在內容中,從而不再需要讀寫HDFS,提高了運行效率。Spark是在Scala語言中實現的,它將Scala用作其應用程序框架,具有易用性、通用性、速度快等衆多特點,現已形成一個高速發展、應用廣泛的生態系統;

Redis——一個開源(BSD許可)的、使用ANSI C語言編寫的、支持網絡、基於內存亦可持久化的日誌型、Key—Value數據庫,可以用作數據庫、緩存和消息中間件。爲了實現其卓越的性能, Redis 採用運行在內存中的數據集的工作方式。根據實際使用情況,可以每隔一定時間將數據集導出到磁盤,或者追加到命令日誌中,也可以關閉持久化功能,將Redis作爲一個高效的網絡緩存數據功能來使用。

更多大數據技術內容, 歡迎關注

g更多大數據內容,歡迎關注

參考文獻:
——《百度百科》
——《CSDN其他博文》
——《潭州大數據課程課件》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章