大數據的概念和來源

 

1.起源

  1. 起源 2008年9月,美國《自然》雜誌,正是提出“大數據”概念

  2. 2011年2月1日,美國《科學》雜誌,通過社會調查的方式,第一次分析了大數據對人們生活的影響

  3. 2011年5月,麥肯錫研究院分佈報告。大數據是指其大小超出了常規數據庫工具獲取,存儲,管理和分析能力的數據集。

  1. 特徵

 4V特徵(value,volume,velocity,variety)

Value:價值高。

Volume:體量大。(數據每個18月翻一番,而每年產生的數據量增長到44萬億GB)

Velocity:速度快。(數據生成,存儲,分析,處理遠遠超過人們的想象力)

Variety:種類多。

  1. 大數據的來源

  1. 按產生主體

(1)企業(關係型數據庫,數據倉庫)

(2)人(瀏覽信息,聊天,電子商務......)

(3)機器(服務器產生日誌,視頻監控數據)

  1. 數據來源的行業劃分

(1)BAT三大公司爲代表

(2)電信、金融、保險、電力、石化系統

(3)公共安全、醫療、交通領域

(4)氣象、地理、政務等領域

(5)製造業和其他產業

3.按數據存儲的形式劃分

(1)結構化

(2)非結構化

二.大數據技術支撐

  1. 大數據運用場景

環境,教育,醫療,農業,智慧城市,零售業,金融業。

  1. 大數據的處理方法

  1. 數據採集

數據抓取,數據導入,物聯網設備自動抓取

  1. 數據預處理

數據清理,數據集成,數據轉換,數據規約。

轉換:過平滑聚集、數據概化、規範化等方式將數據轉換成適用於數據挖掘的形式。

規約:尋找依賴於發現目標的數據的有用特徵,縮減數據規模,最大限度地精簡數據量。

  1. 統計與分析

統計與分析主要是利用分佈式數據庫,或分佈式計算集羣來對存儲於其內的海量數據進行普通的分析和分類彙總,以滿足大多數常見的分析需求,在這些方面需要使用不同的框架和方法。

Hadoop:大數據的核心,主要組成部分包括:mapreduce(處理)和HDFS(存儲)和yarn(集羣資源管理和調度);

Hbase:常用數據庫;spark:實時數據處理框架;sqoop:數據導入導出;flume:日誌採集工具

Hive:數據倉庫,必須有SQL基礎,可以做離線的數據分析,把複雜的mapreduce代碼轉化爲簡單的sql語句,

而且可以處理的數據類型更加豐富,對接的工具也更多,是整個大數據學習中非常主要的一部分。

                                                

Scala語言主要用來開發spark代碼,調用spark的相關API方法,還有spark SQL和spark streaming的開發,主要對接Kafka進行數據的消費,然後進行流數據處理。結果可以保存在本地數據庫,也可以保存在大數據平臺下。

在大數據的統計與分析過程中,主要面對的挑戰是分析涉及的數據量太大,其對系統資源,特別是I/O會有極大的佔用。

  1. 數據挖掘

  1. Hadoop和大數據的淵源

  1. 什麼是hadoop?

  1. Hadoop 是 Apache 旗下的一套開源軟件平臺。

  2. Hadoop 可以利用計算機集羣,根據用戶自定義的業務邏輯對海量數據進行分佈式處理。

  3. 通常我們說的 Hadoop 是指一個更廣泛的概念--Hadoop 生態圈。

  1. hadoop生態圈

3.技術介紹

(1)Ambari:Apache Ambari是一種基於Web的工具,支持Apache Hadoop集羣的供應、管理和監控。

   Ambari已支持大多數Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper,Sqoop,Hcatalog。

(2)Hdfs:Hadoop實現了一個分佈式文件系統(Hadoop Distributed File System),簡稱HDFS。

   HDFS有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。

 HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。大數據技術首要的要求就是先把數據存下來。HDFS(Hadoop Distributed FileSystem)的設計本質就是爲了大量的數據能夠橫跨成千上萬臺機器存儲,但是對於用戶來說看到的是一個文件系統而不是許多文件系統。比如說你要獲取 /hdfs/tmp/aaa 的數據,雖然使用的是一個路徑,但找個文件的數據可能存放在很多臺不同的機器上。作爲用戶來說不需要知道數據到底存儲在哪兒,就像你在單機上並不關心文件到底存儲在磁盤那個扇區一樣。這些數據交由 HDFS 來存儲。

---------------------

ii容錯率是指在某個體系中能減小一些因素或選擇對某個系統產生不穩定的概率。POSIX表示可移植操作系統接口(Portable Operating System Interface of UNIX,縮寫爲 POSIX )

Yarn:Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可爲上層應用提供統一的資源管理和調度,它的引入爲集羣在利用率、資源統一管理和數據共享等方面帶來了巨大好處。

MapReduce:分佈式離線計算

Hive:在使用了一段時間的 MapReduce 以後,程序員發現 MapReduce 的程序寫起來太麻煩。希望能夠封裝出一種更簡單的方式去完成 MapReduce 程序,於是就有了 Pig 和 Hive。

Pig 是以類似腳本的方式去描述 MapReduce,而 Hive 則是以 SQL 的方式。它們會自動把腳本或者 SQL 翻譯成 MapReduce 程序,然後丟給計算引擎去計算處理。有了 Hive 以後人們發現 SQL 的優勢太大了。一是容易寫,一兩行的 SQL 換成 MapReduce 可能要幾十上百行。二是容易上手,即使非計算機背景的用戶也可以很快的學會。三是易寫易改,一看就懂,容易維護。所以自從 Hive 問世很快就成長爲大數據倉庫的核心技術。使用了一段時間的 Hive 後人們發現 Hive 運行在 MapReduce 上太慢了。於是有開發出了針對於 SQL 優化的技術 Impala,Drill 和 Presto 等。這些技術 犧牲了系統的通用性和穩定性來提高 SQL 的效率,最終並沒有流行起來。

Sqoop:Sqoop(發音:skup)是一款開源的工具,主要用於在Hadoop(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,可以將一個關係型數據庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫。

Storm:如果想要更快的計算速度,比如視頻網站的熱博榜,要求更新延遲在一分鐘內,上面的任何一種手段都無法勝任。於是 Streaming(流)計算模型被開發出來了。Storm 是最流行的流計算平臺。流處理的思路就是在數據進入系統的時候就進行處理,基本無延遲。缺點是不靈活,必須事先直到需要統計的數據,數據流過就沒有了,沒法進行補算。因此它是個好東西,但還是無法代替上述體系的。

HBase: 是一個構建與 HDFS 的分佈式,面向列的存儲系統。以 kv 對的方式存儲數據並對存取操作做了優化,能夠飛快的根據 key 獲取綁定的數據。例如從幾個 P 的數據中找身份證號只需要零點幾秒。

除此之外還有需要定製的組件。比如:Mahout 是機器學習和推薦引擎,Nutch 是搜索引擎,Zookeeper 是集羣管理工具,Sqoop 是 Hadoop 和數據庫之間的導入導出工具,Flume 是日誌提取  Oozie 作業調度。

  1. Hadoop的發展

Google FileSystem:怎麼使用普通計算機存儲海量的數據;

Google MapReduce:怎麼快速的計算海量的數據;

Google BigTable:怎麼實現海量數據的快速查詢;

________________________

i容錯率是指在某個體系中能減小一些因素或選擇對某個系統產生不穩定的概率。POSIX表示可移植操作系統接口(Portable Operating System Interface of UNIX,縮寫爲 POSIX )

 

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