1. 程式人生 > >大資料(Big Data)掃盲

大資料(Big Data)掃盲



大資料(Big Data)

大資料,官方定義是指那些資料量特別大、資料類別特別複雜的資料集,這種資料集無法用傳統的資料庫進行儲存,管理和處理。大資料的主要特點為資料量大(Volume)資料類別複雜(Variety)資料處理速度快(Velocity)資料真實性高(Veracity),合起來被稱為4V。

大資料中的資料量非常巨大,達到了PB級別。而且這龐大的資料之中,不僅僅包括結構化資料(如數字、符號等資料),還包括非結構化資料(如文字、影象、聲音、視訊等資料)。這使得大資料的儲存,管理和處理很難利用傳統的關係型資料庫去完成。在大資料之中,有價值的資訊往往深藏其中。這就需要對大資料的處理速度要非常快,才能短時間之內就能從大量的複雜資料之中獲取到有價值的資訊。在大資料的大量複雜的資料之中,通常不僅僅包含真實的資料,一些虛假的資料也混雜其中。這就需要在大資料的處理中將虛假的資料剔除,利用真實的資料來分析得出真實的結果。

大資料分析(Big Data Analysis)


大資料,表面上看就是大量複雜的資料,這些資料本身的價值並不高,但是對這些大量複雜的資料進行分析處理後,卻能從中提煉出很有價值的資訊。對大資料的分析,主要分為五個方面:視覺化分析(Analytic Visualization)資料探勘演算法(Date Mining Algorithms)預測性分析能力(Predictive Analytic Capabilities)語義引擎(Semantic Engines)資料質量管理(Data Quality Management)

視覺化分析是普通消費者常常可以見到的一種大資料分析結果的表現形式,比如說百度製作的“百度地圖春節人口遷徙大資料”就是典型的案例之一。視覺化分析將大量複雜的資料自動轉化成直觀形象的圖表,使其能夠更加容易的被普通消費者所接受和理解。

資料探勘演算法
是大資料分析的理論核心,其本質是一組根據演算法事先定義好的數學公式,將收集到的資料作為引數變數帶入其中,從而能夠從大量複雜的資料中提取到有價值的資訊。著名的“啤酒和尿布”的故事就是資料探勘演算法的經典案例。沃爾瑪通過對啤酒和尿布購買資料的分析,挖掘出以前未知的兩者間的聯絡,並利用這種聯絡,提升了商品的銷量。亞馬遜的推薦引擎和谷歌的廣告系統都大量使用了資料探勘演算法。

預測性分析能力是大資料分析最重要的應用領域。從大量複雜的資料中挖掘出規律,建立起科學的事件模型,通過將新的資料帶入模型,就可以預測未來的事件走向。預測性分析能力常常被應用在金融分析和科學研究領域,用於股票預測或氣象預測等。

語義引擎是機器學習的成果之一。過去,計算機對使用者輸入內容的理解僅僅停留在字元階段,不能很好的理解輸入內容的意思,因此常常不能準確的瞭解使用者的需求。通過對大量複雜的資料進行分析,讓計算機從中自我學習,可以使計算機能夠儘量精確的瞭解使用者輸入內容的意思,從而把握住使用者的需求,提供更好的使用者體驗。蘋果的Siri和谷歌的Google Now都採用了語義引擎。

資料質量管理
是大資料在企業領域的重要應用。為了保證大資料分析結果的準確性,需要將大資料中不真實的資料剔除掉,保留最準確的資料。這就需要建立有效的資料質量管理系統,分析收集到的大量複雜的資料,挑選出真實有效的資料。


分散式計算(Distributed Computing)


對於如何處理大資料,電腦科學界有兩大方向:第一個方向是集中式計算,就是通過不斷增加處理器的數量來增強單個計算機的計算能力,從而提高處理資料的速度。第二個方向是分散式計算,就是把一組計算機通過網路相互連線組成分散系統,然後將需要處理的大量資料分散成多個部分,交由分散系統內的計算機組同時計算,最後將這些計算結果合併得到最終的結果。儘管分散系統內的單個計算機的計算能力不強,但是由於每個計算機只計算一部分資料,而且是多臺計算機同時計算,所以就分散系統而言,處理資料的速度會遠高於單個計算機。

過去,分散式計算理論比較複雜,技術實現比較困難,因此在處理大資料方面,集中式計算一直是主流解決方案。IBM的大型機就是集中式計算的典型硬體,很多銀行和政府機構都用它處理大資料。不過,對於當時的網際網路公司來說,IBM的大型機的價格過於昂貴。因此,網際網路公司的把研究方向放在了可以使用在廉價計算機上的分散式計算上。

伺服器叢集(Server Cluster)

伺服器叢集是一種提升伺服器整體計算能力的解決方案。它是由互相連線在一起的伺服器群所組成的一個並行式或分散式系統。伺服器叢集中的伺服器運行同一個計算任務。因此,從外部看,這群伺服器表現為一臺虛擬的伺服器,對外提供統一的服務。

儘管單臺伺服器的運算能力有限,但是將成百上千的伺服器組成伺服器集群后,整個系統就具備了強大的運算能力,可以支援大資料分析的運算負荷。Google,Amazon,阿里巴巴的計算中心裡的伺服器叢集都達到了5000臺伺服器的規模。

大資料的技術基礎:MapReduce、Google File System和BigTable

2003年到2004年間,Google發表了MapReduce、GFS(Google File System)和BigTable三篇技術論文,提出了一套全新的分散式計算理論。

MapReduce是分散式計算框架,GFS(Google File System)是分散式檔案系統,BigTable是基於Google File System的資料儲存系統,這三大元件組成了Google的分散式計算模型。

Google的分散式計算模型相比於傳統的分散式計算模型有三大優勢:首先,它簡化了傳統的分散式計算理論,降低了技術實現的難度,可以進行實際的應用。其次,它可以應用在廉價的計算裝置上,只需增加計算裝置的數量就可以提升整體的計算能力,應用成本十分低廉。最後,它被Google應用在Google的計算中心,取得了很好的效果,有了實際應用的證明。

後來,各家網際網路公司開始利用Google的分散式計算模型搭建自己的分散式計算系統,Google的這三篇論文也就成為了大資料時代的技術核心。

主流的三大分散式計算系統:Hadoop,Spark和Storm

由於Google沒有開源Google分散式計算模型的技術實現,所以其他網際網路公司只能根據Google三篇技術論文中的相關原理,搭建自己的分散式計算系統。

Yahoo的工程師Doug Cutting和Mike Cafarella在2005年合作開發了分散式計算系統Hadoop。後來,Hadoop被貢獻給了Apache基金會,成為了Apache基金會的開源專案。Doug Cutting也成為Apache基金會的主席,主持Hadoop的開發工作。

Hadoop採用MapReduce分散式計算框架,並根據GFS開發了HDFS分散式檔案系統,根據BigTable開發了HBase資料儲存系統。儘管和Google內部使用的分散式計算系統原理相同,但是Hadoop在運算速度上依然達不到Google論文中的標準。

不過,Hadoop的開源特性使其成為分散式計算系統的事實上的國際標準。Yahoo,Facebook,Amazon以及國內的百度,阿里巴巴等眾多網際網路公司都以Hadoop為基礎搭建自己的分散式計算系統。

Spark也是Apache基金會的開源專案,它由加州大學伯克利分校的實驗室開發,是另外一種重要的分散式計算系統。它在Hadoop的基礎上進行了一些架構上的改良。Spark與Hadoop最大的不同點在於,Hadoop使用硬碟來儲存資料,而Spark使用記憶體來儲存資料,因此Spark可以提供超過Hadoop100倍的運算速度。但是,由於記憶體斷電後會丟失資料,Spark不能用於處理需要長期儲存的資料。

Storm是Twitter主推的分散式計算系統,它由BackType團隊開發,是Apache基金會的孵化專案。它在Hadoop的基礎上提供了實時運算的特性,可以實時的處理大資料流。不同於Hadoop和Spark,Storm不進行資料的收集和儲存工作,它直接通過網路實時的接受資料並且實時的處理資料,然後直接通過網路實時的傳回結果。

Hadoop,Spark和Storm是目前最重要的三大分散式計算系統,Hadoop常用於離線的複雜的大資料處理,Spark常用於離線的快速的大資料處理,而Storm常用於線上的實時的大資料處理。

相關推薦

資料Big Data掃盲

大資料(Big Data) 大資料,官方定義是指那些資料量特別大、資料類別特別複雜的資料集,這種資料集無法用傳統的資料庫進行儲存,管理和處理。大資料的主要特點為資料量大(Volume),資料類別複雜(Variety),資料處理速度快(Velocity)和資料真實性高(Veracity),合起來被稱為4V。 大

被神話的資料——從資料big data到深度資料deep data思維轉變

        自從阿法狗戰勝人類頂級棋手之後,深度學習、人工智慧變得再一次火熱起來。有些人認為,深度學習的再一次興起是源於硬體的提升、資料量的增多以及高效演算法的研究。這並不完全精確,有一個基本的誤解是更大的資料會產生更好的機器學習結果。然而,更大的資料池/倉

PHP 實現資料30w量級表格匯出匯出excel 提高效率,減少記憶體消耗,終極解決方案

使用php做專案開發的同學,一定都會有過使用php進行excel表格匯出的經歷,當匯出少量資料還好,一旦資料量級達到5w、 10w、20w甚至30以上的時候就會面臨同樣的問題: 1、匯出時間變得很慢,少則1分鐘,多則好幾分鐘,資料量一旦上來,還可能面臨導不出來的困窘(這種匯出效率正常人都會受

雷頓學院資料一期課程

  雷頓學院大資料課程大綱(第一期) 學 時:75 課時 適用物件:雷頓學院招收大資料班全體學員   一、課程的性質與目標 網際網路企業作為大資料的發源地,一直都是大資料應用與技術快速發展的行業。作為大資料從業者,進入網際網路企業工作,一直都是學習大資料與

資料演算法知識

大資料問題 Map-Reduce和Hadoop逐漸成為熱門。 1介紹雜湊函式 雜湊函式又叫雜湊函式,雜湊函式的輸入域可以是非常大的範圍,但是輸出域是固定範圍。假設為s。 雜湊函式性質: 1:典型的雜湊函式都擁有無限的輸入值域; 2:輸入值相同時,返回值一樣; 3:輸入值不

資料十五:Hadoop資料壓縮與壓縮/解壓縮例項

一、資料壓縮 1.概論         壓縮技術能夠有效減少低層儲存系統(HDFS)讀寫位元組。壓縮提高了網路頻寬和磁碟空間的效率。在Hadoop下,尤其是資料規模很大和工作負載密集的情況下。使用資料壓縮閒的非常重要。在這種情況下,I/O操作

資料十四:多job串聯與ReduceTask工作機制

一、多job串聯例項(倒索引排序) 1.需求 查詢每個單詞分別在每個檔案中出現的個數   預期第一次輸出(表示單詞分別在個個檔案中出現的次數) apple--a.txt 3 apple--b.txt 1 apple--c.txt 1 grape--a.txt

資料十二:自定義OutputFormat與ReduceJoin合併資料傾斜

一、OutputFormat介面         OutputFormat是MapReduce輸出的基類,所有實現MapReduce輸出都實現了OutputFormat介面。 1.文字輸出TextOutPutFormat  &n

資料十八:Hive元資料配置、常見屬性配置、資料型別與資料轉換

一、Hive元資料配置到MySQL當中         為什麼要把Hive的元資料配置到MySql中?我們可以使用多個客戶端連線linux系統並且都嘗試啟動Hive,可以發現在啟動第二個Hive客戶端的時候發生報錯了。   

資料十七:Hive簡介、安裝與基本操作

一、簡介         Hive由Facebook開源用於解決海量結構化日誌的資料統計。Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張表,並提供類Sql查詢的功能。 hive本質是將HQL轉化為MapRedu

資料十六:Yarn的工作機制、資源排程器、任務的推測執行機制

一、Yarn概述         Yarn是一個資源排程平臺,負責為運算程式提供伺服器運算資源,相當於一個分散式的作業系統平臺,而MapReduce等運算程式則相當於運行於操作程式上的應用程式。   二、Yarn基本架

資料二十:hive分割槽表、修改表語句與資料的匯入匯出

一、分割槽表         分割槽表實際上就是對應一個HDFS檔案系統上的一個獨立的資料夾,該資料夾下是該分割槽所有的資料檔案,hive中的分割槽就是分目錄,把一個大的資料集更具業務需求分割成小的資料集。在查詢時通過where子句中的

資料二十三:hive優化、表優化

一、Fetch抓取         Fetch抓取是指,Hive中對某些情況的查詢可以不必使用MapReduce計算。例如,select * from employees;在這種情況下,Hive可以簡單讀取employee對應的儲存目錄

資料十九:hive資料庫基本操作與表分類

一、建立資料庫 1.建立一個數據,資料庫在HDFS上的預設儲存路徑是/user/hive/warehouse/*.db create database db_hive; 2.避免建立的資料庫已經存在,增加if not exists create database 

最近經歷的一些資料Spark/Hadoop面試題

http://blog.csdn.net/erfucun/article/details/52275369 /** * Create an input stream that directly pulls messages from Kafka Brokers * without usin

Python如何處理資料知識整理

In [138]: reader = pd.read_table('tmp.sv', sep='|', chunksize=4) In [139]: reader Out[139]: <pandas.io.parsers.TextFileReader at 0x120d2f290> In [1

資料二十三Hive【Hive三種啟動方式 、 HIVE Server2詳解 、 jdbc連結HIVE】

一:Hive的三種啟動方式 1, hive  命令列模式         進入hive安裝目錄,輸入bin/hive的執行程式,或者輸入 hive –service cli         用於linux平臺命令列查詢,查詢語句基本跟mysql查詢語句類似  2, hive

資料時代(BIG DATA)》

第一部分:大資料的時代思維變革 不是隨機樣本,而是全體資料 小資料時代的隨機取樣,最少的資料獲得最多的資訊 取樣分析的精確性隨著取樣隨機性的增加而大幅提高,但與樣本數量的增加關係

資料三十:zookeeper叢集與kafka叢集部署

一、安裝Zookeeper 1.叢集規劃 在hadoop102、hadoop103和hadoop104三個節點上部署Zookeeper。 2.解壓安裝        1.解壓zookeeper安裝包到/usr/local/目錄下 tar -zxvf zookeepe

實戰資料讀書筆記

與線下實體經營輕易對接 1、將電子券傳送到手機上,使用者可以直接拿著手機去消費 2、利用手機上的位置定位功能,公司推出“簽到”服務,可以直接把手機使用者帶到企業活動地點 精準的位置服務 1、移動終端可以隨時隨地為消費者收集、分析資料,讓消費者與身邊的人更好地互