不弄明白這個根本性的問題,是沒法深刻理解從此數據分析技術和工具的意義。html
大數據指的是規模超過現有數據庫工具獲取、存儲、管理和分析能力的數據集,並同時強調並非超過某個特定數量級的數據集纔是大數據。web
大數據的定義聚焦在「大「。從表面上看,數據規模的增加的確爲處理數據帶來了很大的問題。具體來講,在一樣時間內獲取與之前相同價值的數據變得不可爲了。換言之,本質問題是數據的價值密度變低了,數據交換速率變慢了,因此催生了不少新型數據處理技術和工具,如Google的GFS和MapReduce,Apache Hadoop生態系統,美國伯克利大學AMPLab的Spark等;出現了對時間敏感程度不一樣的計算模式,如批式計算模式、交互式計算模式、流計算模式、實時計算模式等。計算模式的差別只是決定獲取價值的技術不一樣,取決於上層業務需求的不一樣。算法
實際上,所謂大數據問題的本質應是數據的資產化和服務化,而挖掘數據的內在價值是研究大數據的最終目標。數據庫
擴展閱讀:服務器
http://www.codesec.net/view/405340.html框架
http://wiki.mbalib.com/wiki/%E5%A4%A7%E6%95%B0%E6%8D%AE分佈式
概念清晰了,接下來就是找到關鍵點。從事大數據工做最核心的兩項工做是:存儲和分析。傳統的數據庫已經沒法知足數據增加的須要了,那麼首先要解決的就是數據增加帶來的存儲問題。其次,是基於離線數據和實時數據的計算,根據不一樣的數學模型輸出有價值的可用性分析結果。工具
Storm是一個分佈式的,容錯的實時計算系統。主要用於互聯網流式數據處理。所謂流式數據是指將數據看做是數據流的形式來處理。數據流則是在時間分佈和數量上無限的一系列數據記錄的集合體;數據記錄是數據流的最小組成單元。舉個例子,對於大型網站,活躍的流式數據很是常見,這些數據包括網站的訪問 PV/UV、用戶訪問了什麼內容,搜索了什麼內容等。實時的數據計算和分析能夠動態實時地 刷新用戶訪問數據,展現網站實時流量的變化狀況,分析天天各小時的流量和用戶分佈狀況 這對於大型網站來講具備重要的實際意義。 oop
Spark是一個基於內存計算的開源的集羣計算系統,目的是讓數據分析更加快速。Spark很是小巧玲瓏,由加州伯克利大學AMP實驗室的Matei爲主的小團隊所開發。使用的語言是Scala,項目的core部分的代碼只有63個Scala文件,很是短小精悍。測試
Spark 是一種與 Hadoop 類似的開源集羣計算環境,可是二者之間還存在一些不一樣之處,這些有用的不一樣之處使 Spark 在某些工做負載方面表現得更加優越,換句話說,Spark 啓用了內存分佈數據集,除了可以提供交互式查詢外,它還能夠優化迭代工做負載。
Spark 是在 Scala 語言中實現的,它將 Scala 用做其應用程序框架。與 Hadoop 不一樣,Spark 和 Scala 可以緊密集成,其中的 Scala 能夠像操做本地集合對象同樣輕鬆地操做分佈式數據集。
HDFS: 存儲系統
MapReduce:計算系統
Hive:提供給SQL開發人員(經過HiveQL)的MapReduce,基於Hadoop的數據倉庫框架
Pig:基於Hadoop的語言開發的
HBase:NoSQL數據庫
Flume:一個收集處理Hadoop數據的框架
Oozie:一個讓用戶以多種語言(如MapReduce,Pig和Hive)定義一系列做業的工做流處理系統
Ambari:一個基於web的部署/管理/監控Hadoop集羣的工具集
Avro:容許編碼Hadoop文件的schema的一種數據序列化系統
Mahout:一個數據挖掘庫,它包含了最流行的一些數據挖據算法,而且以MapReduce模型來實現他們
Sqoop:一個從非Hadoop數據存儲(如關係數據庫和數據倉庫)進來的移動數據到Hadoop中的鏈接工具
HCatalog:一箇中心化的元數據管理以及Apache Hadoop共享服務,它容許在Hadoop集羣中的全部數據的統一視圖,並容許不一樣的工具,包括Pig和Hive,處理任何數據元素,而無需知道身體在集羣中的數據存儲。
BigTop:爲了創造一個更正式的程序或框架Hadoop的子項目及相關組件的目標提升Hadoop的平臺,做爲一個總體的包裝和互操做性測試。
Apache Storm:一個分佈式實時計算系統,Storm是一個任務並行連續計算引擎。 Storm自己並不典型在Hadoop集羣上運行,它使用Apache ZooKeeper的和本身的主/從工做進程,協調拓撲,主機和工做者狀態,保證信息的語義。不管如何, Storm一定仍是能夠從HDFS文件消費或者從文件寫入到HDFS。
Apache Spark:一種快速,通用引擎用於大規模數據處理,Spark是一個數據並行通用批量處理引擎。工做流中在一個相似的和懷舊風格的MapReduce中定義,可是,比傳統Hadoop MapReduce的更能幹。Apache Spark有其流API項目,該項目經過短間隔批次容許連續處理。Apache Spark自己並不須要Hadoop操做。可是,它的數據並行模式,須要穩定的數據優化使用共享文件系統。該穩定源的範圍能夠從S3,NFS或更典型地,HDFS。執行Spark應用程序並不須要Hadoop YARN。Spark有本身獨立的主/服務器進程。然而,這是共同的運行使用YARN容器Spark的應用程序。此外,Spark還能夠在Mesos集羣上運行。