物聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與實(shí)踐(第2版)課件 第8章-物聯(lián)網(wǎng)大數(shù)據(jù)計(jì)算與分析_第1頁
物聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與實(shí)踐(第2版)課件 第8章-物聯(lián)網(wǎng)大數(shù)據(jù)計(jì)算與分析_第2頁
物聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與實(shí)踐(第2版)課件 第8章-物聯(lián)網(wǎng)大數(shù)據(jù)計(jì)算與分析_第3頁
物聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與實(shí)踐(第2版)課件 第8章-物聯(lián)網(wǎng)大數(shù)據(jù)計(jì)算與分析_第4頁
物聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與實(shí)踐(第2版)課件 第8章-物聯(lián)網(wǎng)大數(shù)據(jù)計(jì)算與分析_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

物聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與實(shí)踐InternetofThings

BigDataprocessingTechnologyandPractice物聯(lián)網(wǎng)大數(shù)據(jù)計(jì)算與分析物聯(lián)網(wǎng)大數(shù)據(jù)批處理計(jì)算1物聯(lián)網(wǎng)大數(shù)據(jù)交互式查詢2物聯(lián)網(wǎng)大數(shù)據(jù)流式計(jì)算3物聯(lián)網(wǎng)大數(shù)據(jù)分析4PARTONE1物聯(lián)網(wǎng)大數(shù)據(jù)批處理計(jì)算師傅領(lǐng)進(jìn)門,學(xué)藝在自身。------中國諺語物聯(lián)網(wǎng)大數(shù)據(jù)批處理計(jì)算物聯(lián)網(wǎng)大數(shù)據(jù)批處理計(jì)算中存在的問題:物聯(lián)網(wǎng)大數(shù)據(jù)的一個顯著特性是數(shù)據(jù)規(guī)模巨大,以至于無法利用普通的單個服務(wù)器在短時間內(nèi)完成計(jì)算任務(wù),必須要借助海量計(jì)算能力來幫助開發(fā)人員完成。解決方法:基于集群的分布式并行編程能夠讓軟件與數(shù)據(jù)同時運(yùn)行在連成網(wǎng)絡(luò)的許多臺計(jì)算機(jī)上,并且可以通過增加計(jì)算機(jī)來擴(kuò)充新的計(jì)算節(jié)點(diǎn),從而在短時間內(nèi)完成大規(guī)模數(shù)據(jù)的處理任務(wù)。存在問題:基于集群的分布式并行編程需要將大規(guī)模的數(shù)據(jù)進(jìn)行切分并分發(fā)數(shù)據(jù)到不同計(jì)算機(jī)上,并將不同計(jì)算機(jī)上的計(jì)算結(jié)果傳輸?shù)揭粋€計(jì)算機(jī)上進(jìn)行合并,還需要處理異常等一系列問題,需要大量的復(fù)雜代碼來處理上述問題,使得原本很簡單的計(jì)算變得讓程序員難以處理。并行編程模型:為了解決這個問題,Google使用了名為MapReduce的并行編程模型進(jìn)行分布式并行編程。其主要優(yōu)點(diǎn)是通過簡單的接口來實(shí)現(xiàn)自動的并行化和大規(guī)模分布式計(jì)算,讓程序員專注于數(shù)據(jù)的處理部分而不用關(guān)心分布式并行計(jì)算所涉及到的技術(shù)細(xì)節(jié)。MapReduce的設(shè)計(jì)思想一個編程模型被廣泛使用的關(guān)鍵是其設(shè)計(jì)思想。設(shè)計(jì)思想決定了編程模型是否好用、是否能有效地解決實(shí)際問題、是否能保障性能。MapReduce基于以下思想進(jìn)行設(shè)計(jì):(1)向“外”橫向擴(kuò)展,而非向“上”縱向擴(kuò)展(Scale“out",not“up”)(2)失效被認(rèn)為是常態(tài)(Assumefailuresarecommon)(3)把處理向數(shù)據(jù)遷移(Movingprocessingtothedata)(4)為應(yīng)用開發(fā)者隱藏系統(tǒng)層細(xì)節(jié)(Hidesystem-leveldetailsfromtheapplicationdeveloper)(5)平滑無縫的可擴(kuò)展性(Seamlessscalability)MapReduce的工作機(jī)制MapReduce集群中的服務(wù)器節(jié)點(diǎn)由一個主節(jié)點(diǎn)(Master)和多個從節(jié)點(diǎn)(Slave)構(gòu)成。集群采用HDFS作為其分布式文件系統(tǒng)。

MapReduce總體工作流程:輸入的原始大數(shù)據(jù)集首先被切割成小數(shù)據(jù)集,通常讓小數(shù)據(jù)集小于或等于HDFS中一個塊的大小。如圖中步驟(1)所示輸入數(shù)據(jù)切割完畢后,啟動程序的多個副本。其中有一個特殊的副本運(yùn)行在主節(jié)點(diǎn)上,它將任務(wù)(job)分配給M個map工作站和R個reduce工作站,如步驟(2)所示。在步驟(3)(4)中,Map工作站讀輸入生成key/value對緩存在內(nèi)存,周期性地寫入本地硬盤,用劃分功能劃分為R個桶。在步驟(5)中,Reduce工作站接到工作數(shù)據(jù)位置后用遠(yuǎn)程調(diào)用從Map工作站的硬盤讀數(shù)據(jù)。在步驟(6),Reduce工作站將key/value對送給用戶Reduce函數(shù),把生成的key/value對加入輸出文件。MapReduce在物聯(lián)網(wǎng)大數(shù)據(jù)中的應(yīng)用物聯(lián)網(wǎng)大數(shù)據(jù)分析的過程不是單獨(dú)基于一類數(shù)據(jù)進(jìn)行采集、存儲、管理和分析的過程,而是針對物聯(lián)網(wǎng)設(shè)備的全生命周期的各類要素信息進(jìn)行的。物聯(lián)網(wǎng)大數(shù)據(jù)分析需要基于過去很長歷史時期、不同工作和環(huán)境狀態(tài)下的所有數(shù)據(jù),才能相對準(zhǔn)確的分析出有價值的信息。物聯(lián)網(wǎng)中可以進(jìn)行采集、存儲并加以分析利用的數(shù)據(jù)不止感知數(shù)據(jù),還包括設(shè)備全生命周期的各類要素信息。物聯(lián)網(wǎng)大數(shù)據(jù)的數(shù)據(jù)規(guī)模是巨大的,例如在某些項(xiàng)目中每天需要保存數(shù)十GB甚至數(shù)百GB的數(shù)據(jù)。MapReduce以及NoSQL技術(shù)使得存儲、管理和分析大規(guī)模的數(shù)據(jù)成為可能,過去無法存儲的長期歷史數(shù)據(jù),如今可以被無限制的存儲起來。物聯(lián)網(wǎng)大數(shù)據(jù)分析的發(fā)展使得過去被丟棄的傳感器數(shù)據(jù)得到充分利用,為企業(yè)提供了更多的支撐和決策依據(jù)。物聯(lián)網(wǎng)技術(shù)的興起使得廠家可以在售出的產(chǎn)品上預(yù)先安裝各種聯(lián)網(wǎng)的傳感器,采用Hadoop、NoSQL等技術(shù)進(jìn)行數(shù)據(jù)采集、存儲、分析,從中獲取產(chǎn)品使用情況和用戶習(xí)慣等信息,幫助廠家預(yù)測產(chǎn)品銷售趨勢。PARTTWO2物聯(lián)網(wǎng)大數(shù)據(jù)交互式查詢HBase上的原生SQL傳感器的數(shù)值信息是存儲在HBase中的,對于HBase來說,SQL查詢從宏觀上可以分為統(tǒng)計(jì)查詢和非統(tǒng)計(jì)查詢。充分利用HBase的新特性,把對數(shù)據(jù)的操作從HBase客戶端移動到RegionServer端,降低網(wǎng)絡(luò)的I/O負(fù)載,提高HBase的性能。對于非統(tǒng)計(jì)查詢來說,我們可以使用過濾器獲取目標(biāo)字段。對于統(tǒng)計(jì)查詢來說,我們可以采用協(xié)處理器方式獲取數(shù)據(jù)。HBase上的原生SQL以下面的SQL查詢?yōu)槔阂陨喜樵冋Z句的主要作用是從溫度傳感器表中,查詢出SensorID在0001和1001之間,兩個時間段內(nèi)溫度小于25度傳感器的數(shù)據(jù)信息。該例中目標(biāo)字段為SensorID、value、Time;篩選條件為Time、value、SensorID。底層數(shù)據(jù)庫調(diào)度過程:(1)判斷查詢是否為統(tǒng)計(jì)查詢;(2)調(diào)用過濾器或協(xié)處理器對HBase進(jìn)行調(diào)度。selectSensorID,value,TimefromtempSensorTablewhereTime>=to_date(‘2016-2-2400:00:03,’yyyy-mm-ddhh24:mi:ss’)andTime<=to_date(‘2016-2-2400:00:04’,’yyyy-mm-ddhh24:mi:ss’)andvalue<=25andSensorID>=’0001’andSensorID<’1001’SQLonHBase的開源項(xiàng)目:PhoenixPhoenix可以將SQL查詢編譯為HBase上的一系列掃描操作。Phoenix使用協(xié)處理器、自定義過濾器等進(jìn)行優(yōu)化,可以實(shí)現(xiàn)少量數(shù)據(jù)上的微秒級響應(yīng),以及百萬級別行數(shù)據(jù)的秒級響應(yīng)。Phoenix支持多列的二級索引,列數(shù)不限。Phoenix的SQL語句更接近標(biāo)準(zhǔn)SQL規(guī)范。但它也有一些限制,例如Phoenix不能識別HBase創(chuàng)建的表。Phoenix官網(wǎng)地址:

Hadoop上的SQL:HiveHive是對HDFS進(jìn)行修改擴(kuò)展生成的一個數(shù)據(jù)倉庫框架。它實(shí)現(xiàn)了類SQL語句的編程接口,提供了一種類似SQL的語言HQL。Hive核心是將HQL轉(zhuǎn)換為MapReduce程序,然后將程序提交到Hadoop集群執(zhí)行。省去了編寫MapReduce程序的復(fù)雜過程。在HBase上使用Hive卻得不到很好的性能。Hive訪問HBase中表數(shù)據(jù),實(shí)質(zhì)上是通過Hadoop讀取HBase表數(shù)據(jù),對HBase表進(jìn)行切分,獲取RecordReader對象來讀取數(shù)據(jù)?;贖Base的交互式查詢交互式查詢分析的響應(yīng)延遲常常需要控制在秒級范圍內(nèi),但目前的HBase、Hive在某些查詢場景下還達(dá)不到這樣的實(shí)時性要求。按行鍵從HBase中查詢數(shù)據(jù)效率是比較高的,但是若根據(jù)定義在列的屬性上的約束條件進(jìn)行查詢的效率較低,無法滿足交互式查詢的秒級響應(yīng)要求。針對多個屬性的約束條件進(jìn)行交互式查詢,可以考慮使用倒排索引技術(shù)來提高查詢效率,或者采用ElasticSearch等內(nèi)建高效倒排索引的存儲方案。華為的HBase二級索引項(xiàng)目以及Phoenix中都實(shí)現(xiàn)了二級索引。PARTTHREE3物聯(lián)網(wǎng)大數(shù)據(jù)流失計(jì)算流式計(jì)算的需求特點(diǎn)面向物聯(lián)網(wǎng)應(yīng)用的感知數(shù)據(jù)流計(jì)算的需求一般有如下特點(diǎn):高吞吐低延遲數(shù)據(jù)的處理能力。將流式數(shù)據(jù)和歷史數(shù)據(jù)進(jìn)行“無縫”關(guān)聯(lián)。流數(shù)據(jù)處理需具有動態(tài)可伸縮的架構(gòu),能夠適應(yīng)流數(shù)據(jù)規(guī)模和速度的動態(tài)變化性,適應(yīng)不同的負(fù)載。能夠處理有缺陷的數(shù)據(jù)。容錯性,同時其保障容錯的開銷較小。支持高級流數(shù)據(jù)處理原語或語言。支持多租戶共享流數(shù)據(jù)處理基礎(chǔ)設(shè)施,支持pay-as-you-go的流數(shù)據(jù)處理服務(wù)使用模式。流數(shù)據(jù)基本概念起源于Unix的數(shù)據(jù)管道(pipeline)模型是流式數(shù)據(jù)處理系統(tǒng)通用的組件抽象模型。輸入數(shù)據(jù)通常通過緩沖區(qū)從數(shù)據(jù)源流入流式數(shù)據(jù)管道,管道中所有操作形成鏈路,數(shù)據(jù)流平滑通過整個管道,任何操作都不能阻塞處理過程。因此,流數(shù)據(jù)處理管道可以看作是由執(zhí)行數(shù)據(jù)操作的“算子(operator)”集合互相之間通過數(shù)據(jù)“流(stream)”連接而成的圖形成。算子具有輸入和輸出端口,輸入數(shù)據(jù)項(xiàng)的到達(dá)將觸發(fā)算子的執(zhí)行,算子所執(zhí)行的數(shù)據(jù)操作包括數(shù)據(jù)轉(zhuǎn)換、處理及產(chǎn)生輸出數(shù)據(jù)。流數(shù)據(jù)功能模型流數(shù)據(jù)基本概念在流式數(shù)據(jù)管道模型中的算子包括三種:數(shù)據(jù)源接收算子(sourceoperator)

數(shù)據(jù)源接收算子負(fù)責(zé)管理多個數(shù)據(jù)源通道,實(shí)現(xiàn)數(shù)據(jù)源到系統(tǒng)的傳輸和通信協(xié)議,接收來自多個數(shù)據(jù)源的數(shù)據(jù),并將它們一個接一個地發(fā)送給下一個數(shù)據(jù)處理算子。管道模型中的數(shù)據(jù)源接收算子不具有輸入端口。與數(shù)據(jù)接收器相連的“時鐘(clock)”組件可選,它用來周期性地創(chuàng)建一條特殊的帶有時間戳的數(shù)據(jù)項(xiàng),以方便周期性地對數(shù)據(jù)進(jìn)行處理。目的接收算子(sinkoperator)

目的接收算子(sinkoperator)負(fù)責(zé)將管道中的數(shù)據(jù)遞送到外部的應(yīng)用或用戶,它在管道模型中沒有輸出端口。在每一個數(shù)據(jù)處理算子中執(zhí)行一些數(shù)據(jù)操作,包括數(shù)據(jù)轉(zhuǎn)換、處理及產(chǎn)生輸出數(shù)據(jù)等,可用流數(shù)據(jù)的處理規(guī)則來表達(dá),這些規(guī)則一般包括對數(shù)據(jù)的過濾、連接和聚集等,互相連接的基本算子運(yùn)算符構(gòu)成執(zhí)行計(jì)劃。數(shù)據(jù)處理算子流數(shù)據(jù)基本概念流數(shù)據(jù)處理的算子還可分為:阻塞算子:在產(chǎn)生執(zhí)行結(jié)果時需要預(yù)先讀取整個流數(shù)據(jù)非阻塞算子:在數(shù)據(jù)項(xiàng)到達(dá)的時候即可產(chǎn)生結(jié)果在部署模型上,流數(shù)據(jù)處理系統(tǒng)主要分為集中式和分布式兩類。流式數(shù)據(jù)的處理模型分為完全模型和滑動窗口模型兩類完全模型在整個流數(shù)據(jù)范圍內(nèi)進(jìn)行處理,例如阻塞式算子的執(zhí)行。但由于流數(shù)據(jù)是無邊界的連續(xù)數(shù)據(jù)項(xiàng),讀取整個流數(shù)據(jù)在理論上是不可能的,因此,“窗口”被用來對運(yùn)算符執(zhí)行時考慮的流數(shù)據(jù)進(jìn)行限制,從而使得阻塞式算子也可以執(zhí)行,同時,也使得非阻塞式算子的執(zhí)行更有效。流數(shù)據(jù)基本概念窗口可分為如下幾類:

固定窗口:窗口邊界不移動,例如只處理某固定時間段內(nèi)的數(shù)據(jù)項(xiàng)界標(biāo)窗口:窗口邊界從某個已知時間點(diǎn)到當(dāng)前時間點(diǎn)為止滑動窗口:窗口邊界是按照固定大小向前滑動的,即當(dāng)新的數(shù)據(jù)項(xiàng)到達(dá)時,窗口的上界和下界都相應(yīng)移動?;瑒哟翱诘慕K點(diǎn)永遠(yuǎn)為當(dāng)前時刻。其中,滑動窗口的大小可以由一個時間區(qū)間定義,也可以由窗口所包含的數(shù)據(jù)項(xiàng)數(shù)目定義?;瑒哟翱谟袃蓚€基本概念:窗口范圍(range),指滑動窗口的大??;更新間隔(slide),指窗口一次滑動的時間區(qū)間或數(shù)據(jù)項(xiàng)數(shù)目。流數(shù)據(jù)基本概念流數(shù)據(jù)處理的規(guī)則有兩類,一類是轉(zhuǎn)換規(guī)則(transformationrules),一類是檢測規(guī)則(detectionrules)轉(zhuǎn)換規(guī)則(transformationrules)轉(zhuǎn)換規(guī)則定義了一個由基本的算子運(yùn)算符構(gòu)成的執(zhí)行計(jì)劃。這些運(yùn)算符描述了算子所執(zhí)行的包括過濾、連接、聚集等在內(nèi)的數(shù)據(jù)操作。執(zhí)行計(jì)劃可由用戶自定義或由系統(tǒng)預(yù)定義。系統(tǒng)預(yù)定義轉(zhuǎn)換規(guī)則一般使用類似于SQL的語句來表達(dá)。其規(guī)則表達(dá)語言可分為聲明式語言和命令式語言兩類。檢測規(guī)則(detectionrules)檢測規(guī)則由條件和活動兩部分構(gòu)成。條件部分通常用邏輯謂詞表達(dá),后者通常使用特定的結(jié)構(gòu)來表達(dá)。檢測規(guī)則通常用基于模式(pattern-based)的語言進(jìn)行描述。條件通常表達(dá)為模式的形式,使用邏輯操作符、數(shù)據(jù)內(nèi)容和時間約束等選擇輸入流數(shù)據(jù)中的匹配部分,活動則定義了所選數(shù)據(jù)項(xiàng)如何關(guān)聯(lián)來產(chǎn)生新的數(shù)據(jù)。這在復(fù)合事件處理系統(tǒng)中尤為常見。流數(shù)據(jù)基本概念流數(shù)據(jù)處理系統(tǒng)的規(guī)則語言中經(jīng)常使用的算子運(yùn)算符如下:單數(shù)據(jù)項(xiàng)(single-item)運(yùn)算符。單數(shù)據(jù)項(xiàng)運(yùn)算符分為兩類,一類為選擇運(yùn)算符,對輸入流數(shù)據(jù)中的數(shù)據(jù)項(xiàng)按照某種條件進(jìn)行過濾操作。數(shù)據(jù)加工運(yùn)算符,包括投影運(yùn)算符以及重命名運(yùn)算符邏輯(logic)運(yùn)算符。邏輯運(yùn)算符是對多個數(shù)據(jù)項(xiàng)的操作,但與數(shù)據(jù)項(xiàng)的順序無關(guān)。包括:聯(lián)合運(yùn)算符、析取運(yùn)算符、數(shù)據(jù)項(xiàng)重復(fù)運(yùn)算符(數(shù)據(jù)項(xiàng)a的重復(fù)度為<m,n>當(dāng)且僅當(dāng)a被檢測到出現(xiàn)了不少于m次,但不多于n次)以及否定運(yùn)算符(作用在某數(shù)據(jù)項(xiàng)上的否定運(yùn)算符當(dāng)且僅當(dāng)流數(shù)據(jù)中沒有出現(xiàn)該數(shù)據(jù)項(xiàng)時為真)。序列(sequences)運(yùn)算符。序列運(yùn)算符當(dāng)且僅當(dāng)數(shù)據(jù)項(xiàng)序列a1,a2,…,an以某個具體的順序出現(xiàn)時為真。序列運(yùn)算符在基于模式的語言中經(jīng)常使用,而轉(zhuǎn)換規(guī)則語言通常不提供該運(yùn)算符。迭代(iteration)運(yùn)算符。迭代運(yùn)算符用來表達(dá)滿足給定迭代條件的無邊界數(shù)據(jù)項(xiàng)序列。與序列運(yùn)算符類似,迭代運(yùn)算符以數(shù)據(jù)項(xiàng)的排序?yàn)榍疤?。流管理(flowmanagement)運(yùn)算符。聲明式和命令式的流數(shù)據(jù)處理轉(zhuǎn)換規(guī)則描述語言都需要對多個來源的流數(shù)據(jù)進(jìn)行合并、分割、組織和處理等。它包括:連接運(yùn)算符、Bag集合運(yùn)算符、數(shù)據(jù)流重復(fù)運(yùn)算符、分組運(yùn)算符以及排序運(yùn)算符。聚集(aggregation)操作運(yùn)算符。類似于關(guān)系代數(shù)中的聚集操作,很多流數(shù)據(jù)處理的應(yīng)用場景也需要聚集多個流數(shù)據(jù)的數(shù)據(jù),并生成新的數(shù)據(jù)。早期流數(shù)據(jù)處理系統(tǒng)提供一些預(yù)定義的聚集運(yùn)算符,例如求最小值、最大值和平均值的運(yùn)算符。聚集運(yùn)算符往往需要和窗口結(jié)構(gòu)聯(lián)合使用,以對操作的范圍進(jìn)行約束,稱為窗口聚集操作或窗口聚集查詢(windowedaggregationquery)。流數(shù)據(jù)查詢操作流數(shù)據(jù)查詢相關(guān)工作可以分為兩個方面:

一方面是單個查詢操作的實(shí)現(xiàn)及優(yōu)化,例如連接查詢、聚集查詢等操作的實(shí)現(xiàn)及優(yōu)化;另一方面是互相連接的多個流數(shù)據(jù)操作算子的執(zhí)行及優(yōu)化。流數(shù)據(jù)連接查詢操作:

流數(shù)據(jù)的連接查詢算法可以分為兩個或多個流數(shù)據(jù)之間的連接查詢

以及流數(shù)據(jù)和靜態(tài)數(shù)據(jù)之間的連接查詢兩類,在分布式和云計(jì)算環(huán)境中,連接查詢主要通過數(shù)據(jù)分區(qū)技術(shù)實(shí)現(xiàn)?;谠朴?jì)算的流數(shù)據(jù)聚集查詢操作:

基于云計(jì)算分布并行的計(jì)算模式,流數(shù)據(jù)上的滑動窗口聚集操作有并行劃分、增量式處理、層次性處理三種優(yōu)化方式。流數(shù)據(jù)定制化服務(wù)目標(biāo):面向不同類型應(yīng)用的需求,以服務(wù)方式提供對流數(shù)據(jù)連續(xù)查詢、事件檢測、實(shí)時分析等的能力,支持用戶對大規(guī)模流數(shù)據(jù)的共享定制。為了解決處理實(shí)時、持續(xù)不間斷的流數(shù)據(jù)時的局限性,進(jìn)行了數(shù)據(jù)服務(wù)模型的研究工作,包括“數(shù)據(jù)服務(wù)”和“以數(shù)據(jù)為中心的Web服務(wù)”。流數(shù)據(jù)定制化服務(wù)大規(guī)模流數(shù)據(jù)服務(wù)模型與傳統(tǒng)數(shù)據(jù)服務(wù)模型的比較流數(shù)據(jù)定制化服務(wù)

流數(shù)據(jù)服務(wù)的模型需要對服務(wù)的數(shù)據(jù)模型、操作、服務(wù)處理方法以及性質(zhì)等進(jìn)行刻畫。針對這些問題,研究工作提出了StreamFeeds模型。

StreamFeed:一種流數(shù)據(jù)服務(wù)抽象模型流數(shù)據(jù)定制化服務(wù)為了利用流數(shù)據(jù)構(gòu)造具體的應(yīng)用,研究者們提出了不同的編程模型與方法,如IBMSPL、SparkStreaming、CQL等傳感器流數(shù)據(jù)抽象為服務(wù),實(shí)現(xiàn)智能響應(yīng),延續(xù)服務(wù)計(jì)算核心思想,加強(qiáng)與周圍情景信息關(guān)聯(lián)。亞馬遜Kinesis、GoogleBigQuery、PredictiveAPI提供流數(shù)據(jù)托管服務(wù),簡化數(shù)據(jù)流收集與分析,無需自行搭建基礎(chǔ)設(shè)施。流數(shù)據(jù)服務(wù)面臨動態(tài)負(fù)載挑戰(zhàn),關(guān)鍵在于保障可伸縮性,以適應(yīng)不可預(yù)測且動態(tài)變化的流數(shù)據(jù)規(guī)模與速度。評測基準(zhǔn)評測基準(zhǔn):用于評測、比較不同系統(tǒng)性能的規(guī)范。評測基準(zhǔn)用于客觀、全面反映具有類似功能的系統(tǒng)之間的差異。傳統(tǒng)的數(shù)據(jù)管理技術(shù)發(fā)展已相對成熟和穩(wěn)定,而流數(shù)據(jù)處理由于各個要素普遍缺乏標(biāo)準(zhǔn),流數(shù)據(jù)處理的基準(zhǔn)測試需求要包含多個方面。廣泛的評估和比較流計(jì)算系統(tǒng)評估不同數(shù)據(jù)或計(jì)算特征下的能力產(chǎn)生不同的有代表性的負(fù)載評測基準(zhǔn)如LinearRoadBenchmark是廣泛應(yīng)用的流數(shù)據(jù)處理測試基準(zhǔn),可以進(jìn)行計(jì)費(fèi)通知、事故通知、旅行時間估計(jì)等查詢、測試不同系統(tǒng)執(zhí)行這些查詢時的性能。Hibench、BigBench、BigDataBench等針對Hadoop和大數(shù)據(jù)處理提供豐富的測試場景;流處理系統(tǒng)如S4、SparkStreaming、TimeStream進(jìn)行了自身適用場景下的專用評測。SparkStreaming及其在物聯(lián)網(wǎng)大數(shù)據(jù)中的應(yīng)用SparkStreaming:構(gòu)建在Spark上處理流數(shù)據(jù)的框架,它將Stream數(shù)據(jù)分成小的時間片斷實(shí)現(xiàn)處理小部分?jǐn)?shù)據(jù)SparkStreaming優(yōu)點(diǎn):能運(yùn)行在100+的結(jié)點(diǎn)上,并達(dá)到秒級延遲使用基于內(nèi)存的Spark作為執(zhí)行引擎,具有高效和容錯的特性能集成Spark的批處理和交互查詢?yōu)閷?shí)現(xiàn)復(fù)雜的算法提供和批處理類似的簡單接口應(yīng)用:使用SparkStreaming流數(shù)據(jù)處理系統(tǒng),利用交通檢測攝像頭不斷產(chǎn)生的車牌信息,來幫助交管部門預(yù)防交通擁堵、事故等問題的發(fā)生PARTFOUR4物聯(lián)網(wǎng)大數(shù)據(jù)分析物聯(lián)網(wǎng)大數(shù)據(jù)OLAP多維分析OLAP是使用多維分析對數(shù)據(jù)快速訪問的一種技術(shù)。分析多維數(shù)據(jù)采用的常用方法包括:上卷(drillup)、下鉆(drilldown)、切片(slicing)和切塊(dicing)等方法。以北京市各監(jiān)測點(diǎn)的車流量數(shù)據(jù)集為例,我們可以將其看作一個多維數(shù)組。三個維分別對應(yīng)監(jiān)測點(diǎn)所屬區(qū)域、月份和日期。下鉆(drilldown)指在維的不同層次間從上層降到下一層,或者說是將匯總數(shù)據(jù)拆分到更細(xì)節(jié)的數(shù)據(jù),例如,從北京市這個區(qū)域鉆取數(shù)據(jù),來查看海淀區(qū)、朝陽區(qū)、石景山區(qū)等各城區(qū)的車流量能集成Spark的批處理和交互查詢上卷(drillup)是下鉆的逆操作,即從細(xì)粒度數(shù)據(jù)向高層的聚合,如將海淀區(qū)、朝陽區(qū)、石景山區(qū)的那個各區(qū)車流量匯總來查看北京城區(qū)的車流量切片(Slice)指選擇維中特定的值進(jìn)行分析,比如只選擇海淀區(qū)的數(shù)據(jù)切塊(Dice)指選擇維中特定區(qū)間的數(shù)據(jù)或者某批特定值進(jìn)行分析,比如選擇2012年10月到2012年12月的車流量數(shù)據(jù)物聯(lián)網(wǎng)大數(shù)據(jù)OLAP多維分析OLAP有多種實(shí)現(xiàn)方法,根據(jù)存儲數(shù)據(jù)的方式不同可以分為ROLAP、MOLAP、HOLAPROLAP表示基于關(guān)系數(shù)據(jù)庫的OLAP實(shí)現(xiàn)(RelationalOLAP),以關(guān)系數(shù)據(jù)庫為核心,以關(guān)系型結(jié)構(gòu)進(jìn)行多維數(shù)據(jù)的表示和存儲。ROLAP將多維數(shù)據(jù)庫的多維結(jié)構(gòu)劃分為兩類表:一類是事實(shí)表,用來存儲數(shù)據(jù)和維關(guān)鍵字;另一類是維表,即對每個維至少使用一個表來存放維的層次、成員類別等維的描述信息。MOLAP表示基于多維數(shù)據(jù)組織的OLAP實(shí)現(xiàn)(MultidimensionalOLAP),以多維數(shù)據(jù)組織方式為核心,也就是說,MOLAP使用多維數(shù)組存儲數(shù)據(jù)。多維數(shù)據(jù)在存儲中將形成“數(shù)據(jù)立方體(Cube)”的結(jié)構(gòu),此結(jié)構(gòu)在得到高度優(yōu)化后,可以很大程度地提高查詢性能。HOLAP表示基于混合數(shù)據(jù)組織的OLAP實(shí)現(xiàn)(HybridOLAP),用戶可以根據(jù)自己的業(yè)務(wù)需求,選擇哪些模型采用ROLAP,哪些采用MOLAP。一般來說,會將非常用或需要靈活定義的分析使用ROLAP方式,而常用、常規(guī)模型采用MOLAP實(shí)現(xiàn)。城市交通物聯(lián)網(wǎng)大數(shù)據(jù)分析流程

在問題建模階段收集問題的相關(guān)資料,理解問題,在此基礎(chǔ)上,拆解問題、簡化問題,將其轉(zhuǎn)化機(jī)器可預(yù)估的問題。首先理解數(shù)據(jù)源的物理意義:對實(shí)際數(shù)據(jù)了解得越充分,越容易找到符合實(shí)際需求的分析手段其次理解數(shù)據(jù)分析的目的和目標(biāo):如果分析的目標(biāo)是想要預(yù)測目標(biāo)變量的值,則可以選擇監(jiān)督學(xué)習(xí)算法,否則可以選擇無監(jiān)督學(xué)習(xí)算法最后將算法轉(zhuǎn)換為應(yīng)用程序,執(zhí)行實(shí)際任務(wù)城市交通物聯(lián)網(wǎng)大數(shù)據(jù)分析流程城市交通物聯(lián)網(wǎng)大數(shù)據(jù)分析流程

伴隨車輛組發(fā)現(xiàn)示意圖城市交通物聯(lián)網(wǎng)大數(shù)據(jù)分析流程2、準(zhǔn)備數(shù)據(jù)

智能交通系統(tǒng)中,各交通路口攝像頭的車牌識別數(shù)據(jù)是可供利用的重要數(shù)據(jù)源之一前面問題建模的分析,算法需要數(shù)據(jù)是點(diǎn)伴隨組,因此還需要將預(yù)處理后的數(shù)據(jù)進(jìn)行計(jì)算,得到點(diǎn)伴隨組。點(diǎn)伴隨組是在一定的時間范圍內(nèi)共同經(jīng)過某個監(jiān)測點(diǎn)的車輛所共同組成的。

將數(shù)據(jù)進(jìn)行整理,按照監(jiān)測點(diǎn)分組,對所有分組內(nèi)的車輛數(shù)據(jù)進(jìn)行一次點(diǎn)伴隨計(jì)算,即對同一分組中的數(shù)據(jù),相互對比在時間閾值范圍內(nèi)的數(shù)據(jù)是否具有一次伴隨關(guān)系,如果滿足條件,則將此分組中的車輛數(shù)據(jù)進(jìn)行匯總,產(chǎn)生點(diǎn)伴隨組。這里的“時間閾值”是指在同一監(jiān)測點(diǎn)下,車輛彼此經(jīng)過監(jiān)測點(diǎn)的時間差值。我們將經(jīng)過同一監(jiān)測點(diǎn)的數(shù)據(jù)按照時間先后順序排序,整理成一條車輛鏈表:滑動時間窗口計(jì)算示意圖城市交通物聯(lián)網(wǎng)大數(shù)據(jù)分析流程2、使用算法或訓(xùn)練算法

求出點(diǎn)伴隨組后,需要使用頻繁集挖掘方法對其進(jìn)行頻繁模式挖掘得到伴隨車輛組。由于是無監(jiān)督學(xué)習(xí)算法,無需對算法進(jìn)行訓(xùn)練。我們基于傳統(tǒng)的FP-Growth算法進(jìn)行并行化的改造。

FP-Growth算法的基本思路是:通過兩次掃描事務(wù)集,分別求出頻繁1項(xiàng)集和不斷地迭代FP-Tree的構(gòu)造和投影過程,并對其進(jìn)行遞歸挖掘出所有的頻繁項(xiàng)集。構(gòu)造的FP-Tree城市交通物聯(lián)網(wǎng)大數(shù)據(jù)分析流程2、使用算法或訓(xùn)練算法

由于傳統(tǒng)的FP-Growth算法是需要在內(nèi)存中建造FP-Tree的,當(dāng)數(shù)據(jù)量很大時,單臺機(jī)器的內(nèi)存便不足以支撐計(jì)算。我們基于Spark框架對傳統(tǒng)的FP-Growth算法做了改進(jìn)和優(yōu)化,利用簡單Hash方法使其能夠?qū)⑹聞?wù)集均衡的分配到集群中的各臺機(jī)器上并行的參與計(jì)算,提高運(yùn)算效率。計(jì)算步驟:首先基于Spark利用其多個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論