- Spark編程基礎(chǔ)
- 林子雨 賴(lài)永炫 陶繼平
- 2063字
- 2020-09-18 18:33:46
1.1 大數(shù)據(jù)的概念與關(guān)鍵技術(shù)
隨著大數(shù)據(jù)時(shí)代的到來(lái),“大數(shù)據(jù)”已經(jīng)成為互聯(lián)網(wǎng)信息技術(shù)行業(yè)的流行詞匯。本節(jié)介紹大數(shù)據(jù)的概念與關(guān)鍵技術(shù)。
1.1.1 大數(shù)據(jù)的概念
關(guān)于“什么是大數(shù)據(jù)”這個(gè)問(wèn)題,學(xué)術(shù)界和業(yè)界比較認(rèn)可關(guān)于大數(shù)據(jù)的“4V”說(shuō)法。大數(shù)據(jù)的4個(gè)“V”,或者說(shuō)是大數(shù)據(jù)的4個(gè)特點(diǎn),包含4個(gè)層面:數(shù)據(jù)量大(Volume)、數(shù)據(jù)類(lèi)型繁多(Variety)、處理速度快(Velocity)和價(jià)值密度低(Value)。
(1)數(shù)據(jù)量大。根據(jù)著名咨詢(xún)機(jī)構(gòu)IDC(Internet Data Center)做出的估測(cè),人類(lèi)社會(huì)產(chǎn)生的數(shù)據(jù)一直都在以每年50%的速度增長(zhǎng),這被稱(chēng)為“大數(shù)據(jù)摩爾定律”。這意味著,人類(lèi)在最近兩年產(chǎn)生的數(shù)據(jù)量相當(dāng)于之前產(chǎn)生的全部數(shù)據(jù)量之和。預(yù)計(jì)到2020年,全球?qū)⒖偣矒碛?5ZB的數(shù)據(jù)量,數(shù)據(jù)量將增長(zhǎng)到2010年數(shù)據(jù)的近30倍。
(2)數(shù)據(jù)類(lèi)型繁多。大數(shù)據(jù)的數(shù)據(jù)類(lèi)型豐富,包括結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),其中,前者占10%左右,主要是指存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù),后者占90%左右,種類(lèi)繁多,主要包括郵件、音頻、視頻、微信、微博、位置信息、鏈接信息、手機(jī)呼叫信息、網(wǎng)絡(luò)日志等。
(3)處理速度快。大數(shù)據(jù)時(shí)代的很多應(yīng)用,都需要基于快速生成的數(shù)據(jù)給出實(shí)時(shí)分析結(jié)果,用于指導(dǎo)生產(chǎn)和生活實(shí)踐,因此,數(shù)據(jù)處理和分析的速度通常要達(dá)到秒級(jí)響應(yīng),這一點(diǎn)和傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)有著本質(zhì)的不同,后者通常不要求給出實(shí)時(shí)分析結(jié)果。
(4)價(jià)值密度低。大數(shù)據(jù)價(jià)值密度卻遠(yuǎn)遠(yuǎn)低于傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中已經(jīng)有的那些數(shù)據(jù),在大數(shù)據(jù)時(shí)代,很多有價(jià)值的信息都是分散在海量數(shù)據(jù)中的。
1.1.2 大數(shù)據(jù)關(guān)鍵技術(shù)
大數(shù)據(jù)的基本處理流程,主要包括數(shù)據(jù)采集、存儲(chǔ)管理、處理分析、結(jié)果呈現(xiàn)等環(huán)節(jié)。因此,從數(shù)據(jù)分析全流程的角度來(lái)看,大數(shù)據(jù)技術(shù)主要包括數(shù)據(jù)采集與預(yù)處理、數(shù)據(jù)存儲(chǔ)和管理、數(shù)據(jù)處理與分析、數(shù)據(jù)可視化、數(shù)據(jù)安全和隱私保護(hù)等幾個(gè)層面的內(nèi)容,具體如表1-1所示。
表1-1 大數(shù)據(jù)技術(shù)的不同層面及其功能

此外,大數(shù)據(jù)技術(shù)及其代表性軟件種類(lèi)繁多,不同的技術(shù)都有其適用和不適用的場(chǎng)景。總體而言,不同的企業(yè)應(yīng)用場(chǎng)景,都對(duì)應(yīng)著不同的大數(shù)據(jù)計(jì)算模式,根據(jù)不同的大數(shù)據(jù)計(jì)算模式,可以選擇相應(yīng)的大數(shù)據(jù)計(jì)算產(chǎn)品,具體如表1-2所示。
表1-2 大數(shù)據(jù)計(jì)算模式及其代表產(chǎn)品

批處理計(jì)算主要解決針對(duì)大規(guī)模數(shù)據(jù)的批量處理,也是我們?nèi)粘?shù)據(jù)分析工作中非常常見(jiàn)的一類(lèi)數(shù)據(jù)處理需求。比如,爬蟲(chóng)程序把大量網(wǎng)頁(yè)抓取過(guò)來(lái)存儲(chǔ)到數(shù)據(jù)庫(kù)中以后,可以使用MapReduce對(duì)這些網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行批量處理,生成索引,加快搜索引擎的查詢(xún)速度。代表性的批處理框架包括MapReduce、Spark等。
流計(jì)算主要是實(shí)時(shí)處理來(lái)自不同數(shù)據(jù)源的、連續(xù)到達(dá)的流數(shù)據(jù),經(jīng)過(guò)實(shí)時(shí)分析處理,給出有價(jià)值的分析結(jié)果。比如,用戶在訪問(wèn)淘寶網(wǎng)等電子商務(wù)網(wǎng)站時(shí),用戶在網(wǎng)頁(yè)中的每次點(diǎn)擊的相關(guān)信息(比如選取了什么商品)都會(huì)像水流一樣實(shí)時(shí)傳播到大數(shù)據(jù)分析平臺(tái),平臺(tái)采用流計(jì)算技術(shù)對(duì)這些數(shù)據(jù)進(jìn)行實(shí)時(shí)處理分析,構(gòu)建用戶“畫(huà)像”,為其推薦可能感興趣的其他相關(guān)商品。代表性的流計(jì)算框架包括Twitter Storm、Yahoo! S4等。Twitter Storm是一個(gè)免費(fèi)、開(kāi)源的分布式實(shí)時(shí)計(jì)算系統(tǒng),Storm對(duì)于實(shí)時(shí)計(jì)算的意義類(lèi)似于Hadoop對(duì)于批處理的意義,Storm可以簡(jiǎn)單、高效、可靠地處理流數(shù)據(jù),并支持多種編程語(yǔ)言。Storm框架可以方便地與數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行整合,從而開(kāi)發(fā)出強(qiáng)大的實(shí)時(shí)計(jì)算系統(tǒng)。Storm可用于許多領(lǐng)域中,如實(shí)時(shí)分析、在線機(jī)器學(xué)習(xí)、持續(xù)計(jì)算、遠(yuǎn)程RPC、數(shù)據(jù)提取加載轉(zhuǎn)換等。由于Storm具有可擴(kuò)展、高容錯(cuò)性、能可靠地處理消息等特點(diǎn),目前已經(jīng)被廣泛應(yīng)用于流計(jì)算應(yīng)用中。
在大數(shù)據(jù)時(shí)代,許多大數(shù)據(jù)都是以大規(guī)模圖或網(wǎng)絡(luò)的形式呈現(xiàn),如社交網(wǎng)絡(luò)、傳染病傳播途徑、交通事故對(duì)路網(wǎng)的影響等。此外,許多非圖結(jié)構(gòu)的大數(shù)據(jù),也常常會(huì)被轉(zhuǎn)換為圖模型后再進(jìn)行處理分析。圖計(jì)算軟件是專(zhuān)門(mén)針對(duì)圖結(jié)構(gòu)數(shù)據(jù)開(kāi)發(fā)的,在處理大規(guī)模圖結(jié)構(gòu)數(shù)據(jù)時(shí)可以獲得很好的性能。谷歌公司的Pregel是一種基于BSP模型實(shí)現(xiàn)的圖計(jì)算框架。為了解決大型圖的分布式計(jì)算問(wèn)題,Pregel搭建了一套可擴(kuò)展的、有容錯(cuò)機(jī)制的平臺(tái),該平臺(tái)提供了一套非常靈活的API,可以描述各種各樣的圖計(jì)算。Pregel作為分布式圖計(jì)算的計(jì)算框架,主要用于圖遍歷、最短路徑、PageRank計(jì)算等。
查詢(xún)分析計(jì)算也是一種在企業(yè)中常見(jiàn)的應(yīng)用場(chǎng)景,主要是面向大規(guī)模數(shù)據(jù)的存儲(chǔ)管理和查詢(xún)分析,用戶一般只需要輸入查詢(xún)語(yǔ)句(如SQL),就可以快速得到相關(guān)的查詢(xún)結(jié)果。典型的查詢(xún)分析計(jì)算產(chǎn)品包括Dremel、Hive、Cassandra、Impala等。其中,Dremel是一種可擴(kuò)展的、交互式的實(shí)時(shí)查詢(xún)系統(tǒng),用于只讀嵌套數(shù)據(jù)的分析。通過(guò)結(jié)合多級(jí)樹(shù)狀執(zhí)行過(guò)程和列式數(shù)據(jù)結(jié)構(gòu),它能做到幾秒內(nèi)完成對(duì)萬(wàn)億張表的聚合查詢(xún)。系統(tǒng)可以擴(kuò)展到成千上萬(wàn)的CPU上,滿足谷歌上萬(wàn)用戶操作PB級(jí)的數(shù)據(jù),并且可以在2~3秒內(nèi)完成PB級(jí)別數(shù)據(jù)的查詢(xún)。Hive是一個(gè)構(gòu)建于Hadoop頂層的數(shù)據(jù)倉(cāng)庫(kù)工具,允許用戶輸入SQL語(yǔ)句進(jìn)行查詢(xún)。Hive在某種程度上可以看作是用戶編程接口,其本身并不存儲(chǔ)和處理數(shù)據(jù),而是依賴(lài)HDFS來(lái)存儲(chǔ)數(shù)據(jù),依賴(lài)MapReduce來(lái)處理數(shù)據(jù)。Hive作為現(xiàn)有比較流行的數(shù)據(jù)倉(cāng)庫(kù)分析工具之一,得到了廣泛的應(yīng)用,但是由于Hive采用MapReduce來(lái)完成批量數(shù)據(jù)處理,因此,實(shí)時(shí)性不好,查詢(xún)延遲較高。Impala作為新一代開(kāi)源大數(shù)據(jù)分析引擎,支持實(shí)時(shí)計(jì)算,它提供了與Hive類(lèi)似的功能,通過(guò)SQL語(yǔ)句能查詢(xún)存儲(chǔ)在Hadoop的HDFS和HBase上的PB級(jí)別海量數(shù)據(jù),并在性能上比Hive高出3~30倍。
- Splunk 7 Essentials(Third Edition)
- 構(gòu)建高質(zhì)量的C#代碼
- ETL with Azure Cookbook
- 空間機(jī)器人遙操作系統(tǒng)及控制
- 協(xié)作機(jī)器人技術(shù)及應(yīng)用
- PIC單片機(jī)C語(yǔ)言非常入門(mén)與視頻演練
- 數(shù)據(jù)庫(kù)原理與應(yīng)用技術(shù)
- 機(jī)器學(xué)習(xí)流水線實(shí)戰(zhàn)
- Implementing AWS:Design,Build,and Manage your Infrastructure
- 數(shù)據(jù)掘金
- Mastering ServiceNow Scripting
- LAMP網(wǎng)站開(kāi)發(fā)黃金組合Linux+Apache+MySQL+PHP
- 格蠹匯編
- MongoDB 4 Quick Start Guide
- C#編程兵書(shū)