偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

大數(shù)據(jù)流難以管理?借助StreamSets來駕馭

譯文
大數(shù)據(jù)
看看免費(fèi)開源的StreamSets Data Collector如何為實時流數(shù)據(jù)帶來可見性和控制性。

【51CTO.com快譯】

[[175601]]

物聯(lián)網(wǎng)數(shù)據(jù)有望發(fā)掘獨(dú)特的、前所未有的業(yè)務(wù)洞察力,不過前提是企業(yè)能夠成功地管理從眾多物聯(lián)網(wǎng)數(shù)據(jù)源流入的數(shù)據(jù)。許多企業(yè)試圖從物聯(lián)網(wǎng)項目獲得價值,但經(jīng)常遇到的一個問題是數(shù)據(jù)漂移(data drift):源設(shè)備和數(shù)據(jù)處理基礎(chǔ)設(shè)施經(jīng)常發(fā)生不可預(yù)測的變化,因而導(dǎo)致數(shù)據(jù)的結(jié)構(gòu)、內(nèi)容或含義發(fā)生變化。

無論流式處理還是批量處理,數(shù)據(jù)通常經(jīng)由眾多工具,從數(shù)據(jù)源進(jìn)入到最后的存儲位置。這條鏈上任何地方的變化都會導(dǎo)致下流系統(tǒng)中出現(xiàn)不完整、不準(zhǔn)確或不一致的數(shù)據(jù),無論是源系統(tǒng)的模式發(fā)生變化、編碼字段值的含義發(fā)生變化,還是參與數(shù)據(jù)生成的軟件組件出現(xiàn)升級或添加。

這種數(shù)據(jù)漂移的影響可能危害特別大,因為它們常常長時間沒有被發(fā)現(xiàn),因而讓低逼真度數(shù)據(jù)污染了數(shù)據(jù)存儲和隨后的分析。在被發(fā)現(xiàn)之前,使用這種有問題的數(shù)據(jù)會導(dǎo)致錯誤的發(fā)現(xiàn)結(jié)果和拙劣的業(yè)務(wù)決定。等到最后發(fā)現(xiàn)了問題,通常借助數(shù)據(jù)科學(xué)家的手動數(shù)據(jù)清理和準(zhǔn)備來加以解決,這給數(shù)據(jù)分析增添了硬性成本、機(jī)會成本和延誤。

StreamSets Data Collector

使用StreamSets Data Collector來構(gòu)建和管理大數(shù)據(jù)攝取管道將有助于緩解數(shù)據(jù)漂移的影響,同時大大縮短花在數(shù)據(jù)清理上的時間。我們在本文中將逐步介紹一種典型的使用場合:實時攝取物聯(lián)網(wǎng)傳感器生成的數(shù)據(jù),饋入到HDFS,以便分析,并使用Impala或Hive實現(xiàn)可視化。

不用編寫一行代碼,StreamSets Data Collector就能從眾多數(shù)據(jù)源攝取流數(shù)據(jù)和批量數(shù)據(jù)。StreamSets Data Collector可執(zhí)行轉(zhuǎn)換,并在數(shù)據(jù)流傳輸過程中清理數(shù)據(jù),然后寫入到眾多目的地。管道部署到位后,你就能獲得細(xì)粒度的數(shù)據(jù)流度量指標(biāo)、檢測異常數(shù)據(jù),并發(fā)出警報,那樣你就能密切關(guān)注管道性能。StreamSets Data Collector可以獨(dú)立運(yùn)行,也可以部署在Hadoop集群上,它提供了支持眾多類型的數(shù)據(jù)源和目的地的連接件。

下列使用場合涉及從貨運(yùn)集裝箱實時生成的數(shù)據(jù)。

數(shù)據(jù)漂移的第一個例子體現(xiàn)在貨運(yùn)集裝箱使用的物聯(lián)網(wǎng)傳感器。由于長期以來的升級,生產(chǎn)一線的傳感器運(yùn)行三種不同固件版本中的一種。每種版本添加新的數(shù)據(jù)字段,改變模式。為了從該傳感器數(shù)據(jù)獲得價值,我們用來攝取信息的系統(tǒng)必須能夠兼顧這種多樣性。

清潔和傳送數(shù)據(jù)

我們的管道從RabbitMQ系統(tǒng)讀取數(shù)據(jù),該系統(tǒng)負(fù)責(zé)從生產(chǎn)一線的傳感器接收MQTT消息。我們進(jìn)行核實,確保我們收到的消息正是想要處理的那些消息。為此,我們使用數(shù)據(jù)流選擇器處理程序,為入站消息指定數(shù)據(jù)規(guī)則。然后,我們使用該規(guī)則宣布與該規(guī)則的標(biāo)準(zhǔn)匹配的所有數(shù)據(jù)都傳送到下游,但是不匹配的任何數(shù)據(jù)一概被丟棄。

然后,我們使用另一個數(shù)據(jù)流選擇器,根據(jù)設(shè)備的固件版本來傳送數(shù)據(jù)。與版本1匹配的所有記錄走一條路徑,與版本2匹配的所有記錄走另一條路徑,以此類推。我們還指定了一條默認(rèn)的全部捕獲(catch-all)規(guī)則,將任何異常發(fā)送到一條“錯誤”路徑。針對現(xiàn)代數(shù)據(jù)流,我們完全預(yù)料到數(shù)據(jù)會出現(xiàn)意外的變化,于是我們設(shè)立了一種從容的錯誤處理機(jī)制:把異常記錄引到本地文件、Kafka數(shù)據(jù)流或輔助管道。那樣一來,我們就能保持管道正常運(yùn)行,同時事后重新處理不符合主要目的的數(shù)據(jù)。

不妨從為固件版本3處理數(shù)據(jù)入手,這增添了緯度/經(jīng)度數(shù)據(jù)。我們馬上想要確保那些字段出現(xiàn)在數(shù)據(jù)集中,而且數(shù)據(jù)包含有效的值。由于位置字段是一個嵌套的結(jié)構(gòu),我們想要對它作扁平化處理,最終丟棄嵌套的數(shù)據(jù)。

同樣,固件版本2包括新的方位字段(raw、pitch和roll),我們可以以一種類似的方式來核實和清潔它。

最后,所有設(shè)備版本都包含溫度和濕度讀數(shù)。首先,我們轉(zhuǎn)換這些讀數(shù)的數(shù)據(jù)類型。濕度轉(zhuǎn)換成了雙精度浮點(diǎn)型(double),濕度轉(zhuǎn)換成了整型(integer),日期轉(zhuǎn)換成了Unix時間戳。

然后我們使用腳本處理程序來編寫一些自定義邏輯,比如將華氏度值轉(zhuǎn)換成攝氏度。StreamSets腳本處理程序支持Jython、Groovy和JavaScript。

清理數(shù)據(jù)(也就是根據(jù)固件版本和最終用途來傳送數(shù)據(jù))后,我們把它發(fā)送到幾個HDFS目的地。

配置目的地

StreamSets本身支持許多數(shù)據(jù)格式,比如明文、分隔文本、JSON、Protobuf和Avro。在該例子中,我們將把數(shù)據(jù)寫入到一個經(jīng)過壓縮的Avro文件。

HDFS目的地可以靈活配置。你可以按照企業(yè)政策的要求來配置安全、動態(tài)配置輸出文件的路徑和位置,甚至決定寫入多個Cloudera CDH版本。

一旦你設(shè)計好了管道,就可以切換至預(yù)覽模式,使用數(shù)據(jù)樣本來測試和調(diào)試數(shù)據(jù)流。你可以逐步調(diào)試每一個處理程序,在任何階段分析數(shù)據(jù)狀態(tài)。

比如說,我們可以在下面看到,reading_date和temperature的數(shù)據(jù)類型被轉(zhuǎn)換成了長整型和雙精度浮點(diǎn)型。如果執(zhí)行了轉(zhuǎn)換數(shù)據(jù)的運(yùn)算,StreamSets也會提醒你。

你還可以把異?;?ldquo;極端情況”數(shù)據(jù)注入到數(shù)據(jù)流,看看它對你的數(shù)據(jù)流有何影響。預(yù)覽模式讓你可以輕松地調(diào)試復(fù)雜的管道,不需要把管道放入到生產(chǎn)環(huán)境。

執(zhí)行管道

現(xiàn)在我們準(zhǔn)備執(zhí)行管道,開始將數(shù)據(jù)攝入到我們的集群中。點(diǎn)擊“開始”按鈕,用戶界面就會切換至執(zhí)行模式。

這時候,StreamSets Data Collector開始攝取數(shù)據(jù),在內(nèi)存中處理數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到目的地。屏幕底部的監(jiān)控窗口顯示了各個實時度量指標(biāo),比如多少記錄讀入、多少記錄寫出。你還可以查看多少時間花在了每個處理程序上,它占用了多少內(nèi)存。這些度量指標(biāo)以及更多的指標(biāo)還可以通過Java管理擴(kuò)展(JMX)來加以訪問。

我們將數(shù)據(jù)送入到HDFDS后,立即就能開始查詢Impala,并運(yùn)行分析、機(jī)器學(xué)習(xí)或可視化。

如今,由于用戶改動和更新系統(tǒng),或者甚至更換平臺,物聯(lián)網(wǎng)設(shè)備、傳感器日志、Web點(diǎn)擊流及其他重要數(shù)據(jù)源在不斷變化。數(shù)據(jù)內(nèi)容、結(jié)構(gòu)、行為和含義的這些變化是不可預(yù)測、未宣布、沒完沒了的,它們會給數(shù)據(jù)處理和分析系統(tǒng)及其運(yùn)營帶來重大危害。StreamSets Data Collector有助于管理數(shù)據(jù)基礎(chǔ)設(shè)施不斷出現(xiàn)的變化,馴服數(shù)據(jù)漂移,并確保數(shù)據(jù)處理系統(tǒng)的完整性。

原文標(biāo)題:Tame unruly big data flows with StreamSets,作者:Arvind Pabhakar

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:趙立京 來源: 51CTO
相關(guān)推薦

2015-10-28 10:55:36

2023-07-24 08:20:11

StreamJava方式

2023-07-26 00:20:20

Java 8數(shù)組方式

2019-06-18 13:51:08

大數(shù)據(jù)流處理新興市場

2011-08-29 10:19:09

Microsoft S控制較大數(shù)據(jù)流

2019-07-05 12:16:26

大數(shù)據(jù)IT互聯(lián)網(wǎng)

2013-09-03 10:03:27

大數(shù)據(jù)大數(shù)據(jù)處理

2014-11-11 10:47:19

hadoop數(shù)據(jù)流

2021-07-23 11:32:05

大數(shù)據(jù)數(shù)據(jù)處理殺熟

2022-03-18 08:57:17

前端數(shù)據(jù)流選型

2011-12-14 15:57:13

javanio

2009-08-19 10:41:12

Java輸入數(shù)據(jù)流

2013-04-18 10:00:40

大數(shù)據(jù)大數(shù)據(jù)全球技術(shù)峰會

2012-07-03 09:59:47

微軟Cloud Numer大數(shù)據(jù)

2021-09-26 05:03:31

數(shù)據(jù)流Redux

2013-01-15 13:04:26

駕馭大數(shù)據(jù)大數(shù)據(jù)

2013-02-25 11:04:39

Teradata 大數(shù)據(jù)天睿

2013-05-06 10:55:53

2013-10-18 17:15:37

SAP

2013-09-02 10:02:01

大數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號