1.? 物流車隊管理
一家物流公司管理著一支龐大的運(yùn)輸車隊劣像,該公司希望收集和分析數(shù)據(jù),幫助調(diào)度員實時指揮車隊结借。
物流車隊管理可以提高運(yùn)輸效率和分配資源玄括。要收集和分析的數(shù)據(jù)主要來自實時數(shù)據(jù)鸦泳,例如車輛位置银锻,數(shù)字行車記錄儀數(shù)據(jù),交通信息做鹰,貨物詳情击纬,到達(dá)時間和停車時長。數(shù)據(jù)格式是非結(jié)構(gòu)化的钾麸,包括地理信息更振,文本炕桨,視頻和圖片。為了避免數(shù)據(jù)丟失和損壞肯腕,有必要轉(zhuǎn)換這些非結(jié)構(gòu)化的處理分析前的數(shù)據(jù)到結(jié)構(gòu)化數(shù)據(jù)献宫。這個基礎(chǔ)設(shè)施的目標(biāo)是收集和分析用于指導(dǎo)車隊的各種來源數(shù)據(jù),同時提供實時訪問權(quán)限实撒。
物流車隊數(shù)據(jù)基礎(chǔ)設(shè)施包括三個邏輯層:批處理層姊途,流處理層,服務(wù)層知态。批處理層可以很好的處理離線數(shù)據(jù)捷兰,但有很多場景數(shù)據(jù)不斷實時生成,并且需要實時查詢處理负敏。流處理層正是用來處理增量的實時數(shù)據(jù)贡茅。服務(wù)層用于響應(yīng)用戶的查詢請求,合并離線數(shù)據(jù)查詢結(jié)果和實時數(shù)據(jù)結(jié)果數(shù)據(jù)集到最終的數(shù)據(jù)集其做。
對于日志記錄收集顶考,多個Kafka集群將被使用,數(shù)據(jù)作為本地緩存存檔到Flume中庶柿。Kafka是一個分布式消息傳遞系統(tǒng)村怪,用于收集和傳送大量日志數(shù)據(jù),低延遲浮庐。Kafka在這種情況下的主要貢獻(xiàn)是主題分區(qū)甚负,它將并行消息傳遞的負(fù)載分散到多個服務(wù)器上。Flume作為分布式系統(tǒng)結(jié)合Kafka可以有效地從HDFS或HBase收集审残,聚合和移動大量數(shù)據(jù)梭域。比較Sqoop和flume, sqoop更專注于結(jié)構(gòu)化數(shù)據(jù),因為原始數(shù)據(jù)通常是非結(jié)構(gòu)化的或半結(jié)構(gòu)化的搅轿,所以在本系統(tǒng)中病涨,使用Flume作為數(shù)據(jù)管道來攝取數(shù)據(jù)。至于流處理系統(tǒng)中璧坟,Spark Streaming將用于分析實時數(shù)據(jù)和輸出將存儲在HBase中既穆。Spark Streaming是一個實時的處理系統(tǒng),具有高吞吐量和容錯性雀鹃,與之相比的另一個實時分析系統(tǒng)Apache Storm幻工,Spark Streaming可以更容易設(shè)置基礎(chǔ)設(shè)施。來自Flume的所有原始數(shù)據(jù)將存儲在HDFS中以供進(jìn)一步使用處理黎茎,例如使用MapReduce和Hive來過濾和聚合數(shù)據(jù)以對大數(shù)據(jù)進(jìn)行挖掘囊颅。MapReduce在數(shù)據(jù)并行方面的性能優(yōu)于Spark,后者將用于本例中的數(shù)據(jù)特征構(gòu)造。在這種情況下踢代,Apache Hive可以將數(shù)據(jù)組織到表中盲憎,存儲系統(tǒng)HBase和Hive都可以提供查詢的訪問權(quán)限。
通常胳挎,Kafka和Spark Streaming基礎(chǔ)結(jié)構(gòu)具有以下優(yōu)點(diǎn)饼疙。該 Spark框架的高效率和低延遲確保了良好的實時性和Spark Streaming操作的性能。而且串远,與Storm相比宏多, Spark Streaming具有Spark提供的高級API和靈活性框架,它有助于以簡單的方式編寫更復(fù)雜的算法≡璺#基礎(chǔ)設(shè)施的高度一致性使得車隊的主管可以輕松完成查詢實時數(shù)據(jù)伸但,它還確保了流處理和批處理的平衡處理。
2.? 商業(yè)分析:中小企業(yè)希望分析社交媒體數(shù)據(jù)以識別新興市場可以幫助他們相應(yīng)調(diào)整產(chǎn)品組合的趨勢留搔。數(shù)據(jù)分析的結(jié)果將需要被列入一份報告更胖,用于為每月舉行的下一次公司董事會會議的戰(zhàn)略決策提供信息。
在商業(yè)公司中隔显,零售商可以通過分析社交媒體來源來調(diào)整未來的產(chǎn)品組合却妨,以識別新興趨勢。使用來自社交媒體網(wǎng)絡(luò)的客戶偏好數(shù)據(jù)可以使決策者保持內(nèi)部了解市場趨勢括眠。從社交媒體收集的數(shù)據(jù)通常是JSON格式彪标,易于分析。如下所示掷豺,由于歷史格式數(shù)據(jù)捞烟,分析類型是批處理,可以確保更高的預(yù)測質(zhì)量当船。
下面顯示的基礎(chǔ)結(jié)構(gòu)是批處理题画。對于分析和預(yù)測巨大和高速度的大數(shù)據(jù),Apache Hadoop平臺在可擴(kuò)展性和可靠性方面表現(xiàn)良好德频。具體來說苍息,在這個基礎(chǔ)設(shè)施中,它將使用flume與Kafka結(jié)合壹置,提供從本地數(shù)據(jù)中心更改數(shù)據(jù)日志的功能竞思,此外,它還提供將它們加載到集中式Hadoop集群的功能钞护。數(shù)據(jù)將存儲在HDFS中盖喷。在清理和處理原始數(shù)據(jù)之后,它將使用MapReduce和Spark通過人工智能技術(shù)進(jìn)行分析患亿,如時間序列和機(jī)器學(xué)習(xí)來進(jìn)行預(yù)測传蹈。最后,計算預(yù)測結(jié)果并將其存入HBase步藕,HBase將為其他可視化系統(tǒng)提供訪問惦界。在數(shù)據(jù)源層中,如第一個用例中所討論的咙冗,F(xiàn)lume與Kafka結(jié)合使用可以很好地進(jìn)行數(shù)據(jù)收集并且易于將數(shù)據(jù)寫入HDFS沾歪。 HDFS是一個高效的分布式文件系統(tǒng),提供高度容錯和可擴(kuò)展性雾消,即使有許多類似的現(xiàn)有分布式文件系統(tǒng)灾搏,如AFS,NFS和GFS立润,HDFS顯示出比其他更多的優(yōu)勢狂窑,它是開源版本并為大批量數(shù)據(jù)提供更多的可能。?
Spark SQL通過使用API桑腮,在關(guān)系和程序化處理之間提供更緊密的集成泉哈。此外,許多用戶使用Spark SQL破讨,原因是它使用基于Hive的嵌套數(shù)據(jù)模型丛晦。與現(xiàn)有的數(shù)據(jù)框架Shark不同,Spark SQL可以準(zhǔn)確地為各種來源和格式的數(shù)據(jù)建模提陶。根據(jù)市場應(yīng)用表現(xiàn)烫沙,對于戰(zhàn)略業(yè)務(wù)決策的趨勢分析使用MapReduce和Spark表現(xiàn)出色。在這種情況下隙笆,MapReduce也將用于特征構(gòu)造锌蓄,Spark將用于時間序列分析和機(jī)器學(xué)習(xí),以預(yù)測銷售仲器,這是預(yù)測系統(tǒng)的核心部分煤率。
3.? 信用卡欺詐檢測:金融機(jī)構(gòu)需要開發(fā)一種檢測方法識別信用卡欺詐。鑒于為客戶提供可靠服務(wù)的重要性乏冀,需要開發(fā)在交易被阻止之前進(jìn)行提供自動分析預(yù)警和交互式用戶輸入的功能蝶糯。
欺詐檢測通過預(yù)測特定交易或客戶賬戶中欺詐的可能性來幫助提高客戶賬戶安全。 如下所示辆沦,欺詐檢測模型中使用的批處理數(shù)據(jù)是從包括信用卡交易特征昼捍,持卡人特征和交易歷史的歷史數(shù)據(jù)中收集的。對于實時欺詐預(yù)測肢扯,實時數(shù)據(jù)是根據(jù)信用交易和電子交易的內(nèi)部數(shù)據(jù)而獲取到妒茬,并已轉(zhuǎn)為結(jié)構(gòu)化數(shù)據(jù)。在欺詐檢測流處理期間蔚晨,系統(tǒng)需要保證低延遲乍钻,高容錯處理肛循,并且需要對每個數(shù)據(jù)進(jìn)行實時精確處理。
解決方案通常分為兩個階段银择,首先多糠,由歷史數(shù)據(jù)分析和取證分析組成的引擎,其用于構(gòu)建機(jī)器學(xué)習(xí)模型浩考,同時夹孔,明確和經(jīng)常更新的欺詐指標(biāo)有助于提高欺詐檢測的準(zhǔn)確性。 第二階段將使用第一階段構(gòu)建的模型來預(yù)測實時數(shù)據(jù)析孽。由于基礎(chǔ)設(shè)施主要集中在第二階段搭伤,我們假設(shè)機(jī)器學(xué)習(xí)模型已經(jīng)很好地構(gòu)建。在流處理過程中袜瞬,基礎(chǔ)設(shè)施將使用Kafka存儲和匯聚流數(shù)據(jù)到Storm實現(xiàn)實時數(shù)據(jù)分析功能怜俐。
上圖顯示了實時欺詐檢測解決方案的基礎(chǔ)結(jié)構(gòu)。信用卡交易事件通過Flume從服務(wù)器獲取并存儲在Apache Kafka邓尤。在此解決方案中佑菩,Apache Storm根據(jù)模型處理所有原始事件,檢測結(jié)果將存儲在Redis中供實時服務(wù)器使用裁赠,欺詐檢測需要高級別速度系統(tǒng)進(jìn)行分析殿漠,與其他流處理系統(tǒng)相比,使用Storm可能是需要近乎實時處理的工作負(fù)載的最佳方式佩捞。它可以處理非常大的數(shù)據(jù)绞幌,延遲比其他解決方案更少。Redis作為緩存一忱,可以將數(shù)據(jù)保存在硬盤上莲蜘。
此外,Redis提供的功能比其他緩存系統(tǒng)更多帘营,它可以支持多種數(shù)據(jù)類型和pub-sub模型并提供高可用性的回答票渠。同時,被識別的非欺詐事件和欺詐事件都會存儲到HBASE中以供將來分析芬迄,對機(jī)器學(xué)習(xí)的模型進(jìn)行訓(xùn)練和更新问顷。
總的來說,Kafka基于日志文件禀梳,可以與Storm高度兼容杜窄。 在數(shù)據(jù)存儲階段,Redis作為緩存數(shù)據(jù)庫在實時環(huán)境中具有較高的讀寫速度算途,可以滿足用戶對實時監(jiān)控和查詢的需求塞耕。
?
4.? 交通管制和收費(fèi):一家公司贏得了開發(fā)一個監(jiān)控一個國家所有主要道路(即高速公路)交通系統(tǒng)的投標(biāo)。系統(tǒng)不僅應(yīng)報告交通違規(guī)行為嘴瓤,如超速駕駛或冒險駕駛行為扫外,還應(yīng)提供自動收費(fèi)計費(fèi)系統(tǒng)的數(shù)據(jù)莉钙。
交通控制和收費(fèi)系統(tǒng)可以幫助更好地監(jiān)控交通違規(guī),例如超速或冒險駕駛行為筛谚,還可以將數(shù)據(jù)傳送到自動計費(fèi)系統(tǒng)胆胰。如下所示,各種內(nèi)容格式和大量快速數(shù)據(jù)是一個巨大的挑戰(zhàn)刻获。 來自道路傳感器,GPS設(shè)備以及其他數(shù)據(jù)(如日期瞎嬉,時間和駕駛員ID)的數(shù)據(jù)將被放入系統(tǒng)中蝎毡,以提供交通違規(guī)的實時摘要。
此架構(gòu)使用相同的訂閱消息傳遞系統(tǒng)氧枣,Kafka來收集流數(shù)據(jù)沐兵。收集的數(shù)據(jù)將發(fā)送到HDFS。 就大量的時間流數(shù)據(jù)而言便监,Yarn作為資源管理系統(tǒng)可以提供集群監(jiān)控和資源訪問管理扎谎,可以提高處理效率。然后烧董,數(shù)據(jù)將在批處理層和流處理層中處理毁靶。 在批處理層中,它將使用Hive逊移,MapReduce來基本處理原始數(shù)據(jù)预吆,并存儲在HBase中以供進(jìn)一步使用。 在流處理中胳泉,它將使用Spark流來分析實時數(shù)據(jù)拐叉,并存儲在Redis中。在HBase和Redis中收集的數(shù)據(jù)將輸入到機(jī)器學(xué)習(xí)模型中以識別哪些車輛超出速度限制或風(fēng)險駕駛行為扇商,整體結(jié)果將被發(fā)送到自動收費(fèi)計費(fèi)系統(tǒng)凤瘦。
此集成的關(guān)鍵是使用Kafka作為可擴(kuò)展和有序的事件存儲。在這種情況下案铺,主要的挑戰(zhàn)是每秒存儲和處理這種數(shù)據(jù)收集以及包含數(shù)十萬個鏈接的地圖蔬芥。 HDFS可以滿足上述存儲需求。它可以在短時間內(nèi)處理數(shù)千萬個文件控汉。HDFS具有文件的一次寫入多次訪問模型坝茎,可簡化數(shù)據(jù)一致性問題并實現(xiàn)高吞吐量數(shù)據(jù)訪問。 Mapreduce完全適合暇番,由于Mapreduce中4000個節(jié)點(diǎn)的可擴(kuò)展限制嗤放,它將在執(zhí)行Mapreduce之前使用YARN作為數(shù)據(jù)資源管理,因為Mapreduce中提供的資源管理能力需要YARN壁酬,這有效地調(diào)整了Mapreduce次酌。Mapreduce顯示了處理數(shù)據(jù)的可靠性恨课,它將用于Hadoop進(jìn)行批處理,從而進(jìn)行進(jìn)一步的分析岳服。HBase的使用將在分布式集群中擴(kuò)展剂公。與Storm和Flink等其他流處理相比,Spark流處理系統(tǒng)可以有效地在數(shù)據(jù)流上應(yīng)用機(jī)器學(xué)習(xí)算法吊宋。
作者原創(chuàng)纲辽,轉(zhuǎn)載請說明。
工作學(xué)習(xí)大數(shù)據(jù)的一些輸出璃搜,歡迎指錯提高拖吼,作為一名數(shù)據(jù)產(chǎn)品新人,也歡迎討論这吻。微信:ren18603342028