{eval=Array;=+count(Array);}
“大數(shù)據(jù)”不是公司,是一個IT行業(yè)內(nèi)的術(shù)語,是指巨大的數(shù)據(jù)集合,超出常規(guī)軟件計算和管理的數(shù)據(jù)流。
大數(shù)據(jù)最早是2008年提出來,麥肯錫研究所給出的定義是:一種規(guī)模大到在獲取、存儲、管理、分析方面大大超出了傳統(tǒng)數(shù)據(jù)庫軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類型和價值密度低四大特征。
大數(shù)據(jù)對于社會發(fā)展而言有著巨大的作用,
第一,對大數(shù)據(jù)的處理分析正成為新一代信息技術(shù)融合應(yīng)用的結(jié)點,通過對不同來源數(shù)據(jù)的管理、處理、分析與優(yōu)化,大數(shù)據(jù)可以提供更加精準的服務(wù)。。
第二,大數(shù)據(jù)是信息產(chǎn)業(yè)持續(xù)高速增長的新引擎。面向大數(shù)據(jù)市場的新技術(shù)、新產(chǎn)品、新服務(wù)、新業(yè)態(tài)會不斷涌現(xiàn)。
第三,各行各業(yè)的決策對大數(shù)據(jù)的分析越來越重視,對大數(shù)據(jù)的分析可以使零售商實時掌握市場動態(tài)并迅速做出應(yīng)對;在醫(yī)療領(lǐng)域,可提高診斷準確性和藥物有效性;可以為商家制定更加精準有效的營銷策略提供決策支持;可以幫助企業(yè)為消費者提供更加及時和個性化的服務(wù);在公共事業(yè)方面,大數(shù)據(jù)也開始發(fā)揮促進經(jīng)濟發(fā)展、維護社會穩(wěn)定等方面的重要作用。
1.起源
4V特征(value,volume,velocity,variety)
Value:價值高。
Volume:體量大。(數(shù)據(jù)每個18月翻一番,而每年產(chǎn)生的數(shù)據(jù)量增長到44萬億GB)
Velocity:速度快。(數(shù)據(jù)生成,存儲,分析,處理遠遠超過人們的想象力)
Variety:種類多。
(1)企業(yè)(關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)倉庫)
(2)人(瀏覽信息,聊天,電子商務(wù)......)
(3)機器(服務(wù)器產(chǎn)生日志,視頻監(jiān)控數(shù)據(jù))
(1)BAT三大公司為代表
(2)電信、金融、保險、電力、石化系統(tǒng)
(3)公共安全、醫(yī)療、交通領(lǐng)域
(4)氣象、地理、政務(wù)等領(lǐng)域
(5)制造業(yè)和其他產(chǎn)業(yè)
(1)結(jié)構(gòu)化
(2)非結(jié)構(gòu)化
二.大數(shù)據(jù)技術(shù)支撐
環(huán)境,教育,醫(yī)療,農(nóng)業(yè),智慧城市,零售業(yè),金融業(yè)。
數(shù)據(jù)抓取,數(shù)據(jù)導入,物聯(lián)網(wǎng)設(shè)備自動抓取
數(shù)據(jù)清理,數(shù)據(jù)集成,數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)規(guī)約。
轉(zhuǎn)換:過平滑聚集、數(shù)據(jù)概化、規(guī)范化等方式將數(shù)據(jù)轉(zhuǎn)換成適用于數(shù)據(jù)挖掘的形式。
規(guī)約:尋找依賴于發(fā)現(xiàn)目標的數(shù)據(jù)的有用特征,縮減數(shù)據(jù)規(guī)模,最大限度地精簡數(shù)據(jù)量。
統(tǒng)計與分析主要是利用分布式數(shù)據(jù)庫,或分布式計算集群來對存儲于其內(nèi)的海量數(shù)據(jù)進行普通的分析和分類匯總,以滿足大多數(shù)常見的分析需求,在這些方面需要使用不同的框架和方法。
Hadoop:大數(shù)據(jù)的核心,主要組成部分包括:mapreduce(處理)和HDFS(存儲)和yarn(集群資源管理和調(diào)度);
Hbase:常用數(shù)據(jù)庫;spark:實時數(shù)據(jù)處理框架;sqoop:數(shù)據(jù)導入導出;flume:日志采集工具
Hive:數(shù)據(jù)倉庫,必須有SQL基礎(chǔ),可以做離線的數(shù)據(jù)分析,把復雜的mapreduce代碼轉(zhuǎn)化為簡單的sql語句,
而且可以處理的數(shù)據(jù)類型更加豐富,對接的工具也更多,是整個大數(shù)據(jù)學習中非常主要的一部分。
Scala語言主要用來開發(fā)spark代碼,調(diào)用spark的相關(guān)API方法,還有spark SQL和spark streaming的開發(fā),主要對接Kafka進行數(shù)據(jù)的消費,然后進行流數(shù)據(jù)處理。結(jié)果可以保存在本地數(shù)據(jù)庫,也可以保存在大數(shù)據(jù)平臺下。
在大數(shù)據(jù)的統(tǒng)計與分析過程中,主要面對的挑戰(zhàn)是分析涉及的數(shù)據(jù)量太大,其對系統(tǒng)資源,特別是I/O會有極大的占用。
hadoop生態(tài)圈
(1)Ambari:Apache Ambari是一種基于Web的工具,支持Apache Hadoop集群的供應(yīng)、管理和監(jiān)控。
Ambari已支持大多數(shù)Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper,Sqoop,Hcatalog。
(2)Hdfs:Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。
HDFS有高容錯性的特點,并且設(shè)計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。
HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。大數(shù)據(jù)技術(shù)首要的要求就是先把數(shù)據(jù)存下來。HDFS(Hadoop Distributed FileSystem)的設(shè)計本質(zhì)就是為了大量的數(shù)據(jù)能夠橫跨成千上萬臺機器存儲,但是對于用戶來說看到的是一個文件系統(tǒng)而不是許多文件系統(tǒng)。比如說你要獲取 /hdfs/tmp/aaa 的數(shù)據(jù),雖然使用的是一個路徑,但找個文件的數(shù)據(jù)可能存放在很多臺不同的機器上。作為用戶來說不需要知道數(shù)據(jù)到底存儲在哪兒,就像你在單機上并不關(guān)心文件到底存儲在磁盤那個扇區(qū)一樣。這些數(shù)據(jù)交由 HDFS 來存儲。
---------------------
ii容錯率是指在某個體系中能減小一些因素或選擇對某個系統(tǒng)產(chǎn)生不穩(wěn)定的概率。POSIX表示可移植操作系統(tǒng)接口(Portable Operating System Interface of UNIX,縮寫為 POSIX )
Yarn:Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協(xié)調(diào)者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處。
MapReduce:分布式離線計算
Hive:在使用了一段時間的 MapReduce 以后,程序員發(fā)現(xiàn) MapReduce 的程序?qū)懫饋硖闊?。希望能夠封裝出一種更簡單的方式去完成 MapReduce 程序,于是就有了 Pig 和 Hive。
Pig 是以類似腳本的方式去描述 MapReduce,而 Hive 則是以 SQL 的方式。它們會自動把腳本或者 SQL 翻譯成 MapReduce 程序,然后丟給計算引擎去計算處理。有了 Hive 以后人們發(fā)現(xiàn) SQL 的優(yōu)勢太大了。一是容易寫,一兩行的 SQL 換成 MapReduce 可能要幾十上百行。二是容易上手,即使非計算機背景的用戶也可以很快的學會。三是易寫易改,一看就懂,容易維護。所以自從 Hive 問世很快就成長為大數(shù)據(jù)倉庫的核心技術(shù)。使用了一段時間的 Hive 后人們發(fā)現(xiàn) Hive 運行在 MapReduce 上太慢了。于是有開發(fā)出了針對于 SQL 優(yōu)化的技術(shù) Impala,Drill 和 Presto 等。這些技術(shù) 犧牲了系統(tǒng)的通用性和穩(wěn)定性來提高 SQL 的效率,最終并沒有流行起來。
Sqoop:Sqoop(發(fā)音:skup)是一款開源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql...)間進行數(shù)據(jù)的傳遞,可以將一個關(guān)系型數(shù)據(jù)庫(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導進到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導進到關(guān)系型數(shù)據(jù)庫。
Storm:如果想要更快的計算速度,比如視頻網(wǎng)站的熱博榜,要求更新延遲在一分鐘內(nèi),上面的任何一種手段都無法勝任。于是 Streaming(流)計算模型被開發(fā)出來了。Storm 是最流行的流計算平臺。流處理的思路就是在數(shù)據(jù)進入系統(tǒng)的時候就進行處理,基本無延遲。缺點是不靈活,必須事先直到需要統(tǒng)計的數(shù)據(jù),數(shù)據(jù)流過就沒有了,沒法進行補算。因此它是個好東西,但還是無法代替上述體系的。
HBase: 是一個構(gòu)建與 HDFS 的分布式,面向列的存儲系統(tǒng)。以 kv 對的方式存儲數(shù)據(jù)并對存取操作做了優(yōu)化,能夠飛快的根據(jù) key 獲取綁定的數(shù)據(jù)。例如從幾個 P 的數(shù)據(jù)中找身份證號只需要零點幾秒。
除此之外還有需要定制的組件。比如:Mahout 是機器學習和推薦引擎,Nutch 是搜索引擎,Zookeeper 是集群管理工具,Sqoop 是 Hadoop 和數(shù)據(jù)庫之間的導入導出工具,F(xiàn)lume 是日志提取 Oozie 作業(yè)調(diào)度。
________________________
i容錯率是指在某個體系中能減小一些因素或選擇對某個系統(tǒng)產(chǎn)生不穩(wěn)定的概率。POSIX表示可移植操作系統(tǒng)接口(Portable Operating System Interface of UNIX,縮寫為 POSIX )