本文先根據大數據的不同處理方式,介紹幾種不同形式大數據處理平臺以及他們各自對應的幾個典型應用,并指出了具有代表性的處理系統。之后對建立于這些系統框架上的大數據分析技術應用作出場景分析,并對大數據行業發展存在的問題和機遇進行了詳細的闡述。
【關鍵詞】大數據 數據分析 Hadoop 機器學習
1 引言
大數據在近幾年迅速成為最具有熱點的一個話題,科技、企業界乃至于各國政府都對其十分關注,大數據帶來的機遇和挑戰已經成為了各界的焦點。
以宏觀的角度來看,大數據是物理世界、信息世界和人類世界的紐帶,物理世界通過網絡將反應自身特性的數據反映到信息世界中,人類世界憑借界面的交互手段對自己的數據向信息世界進行輸入和操作。大數據的特征可總結為5點,即體量大、速度快、模態多、難辨識和價值大密度低五大特性,數據量的龐大并不是目前大數據的主要難點,真正的挑戰在于數據類型的多樣性、不確定性以及對數據處理即時響應的要求。
出于應對處理數據困難的探索,開源界推出了Hadoop,Spark等應對不同應用場景的大數據處理系統,同時相應的分析技術如:深度學習、可視化、知識計算等,這些大數據系統已經逐漸得到廣泛的應用。
2 大數據處理系統
2.1 批量式數據處理系統
批量式數據有三個主要的特性:
(1)數據量巨大,目前已經達到PB級。
(2)數據來源與具體應用系統,精度相對較高。
(3)數據的價值密度相應低下,如視頻數據,在視頻播放的過程中,有價值的數據可能只有僅僅幾秒,而這也需要專用的算法對有價值的數據進行提取,同時提取數據的行為將會消耗一定的時間,所以存在諸多限制,常常會造成處理結果不甚理想。
綜合以上三點特性,批量式數據的處理需要相對比較成熟的技術和作業手段。
批量式數據的應用:
(1)搜索引擎:互聯網是大數據的重要來源,知名的搜索引擎如美國的Google,我國的百度等大型互聯網搜索引擎,通過與廣告相關數據的批量處理,來及時改變廣告投放的策略,根據分析用戶的喜好,更改廣告的分布以提高用戶的點擊量。
(2)社交網絡:目前的社交網絡和各大社交app每天都將產生巨大的數據量,新浪微博、微信等用戶眾多的社交網絡每時每刻都在產生大量的非結構化數據(視頻、圖片、文本),針對這些數據進行批量式處理,可以幫助分析方發現社交網絡中人際之間的潛在關系和他們的共同網絡,根據這一共同特性進行更新升級,可以進一步提升用戶的使用體驗。
(3)電子商務:在淘寶、京東、亞馬遜等電商網站上,產生大量的商品瀏覽記錄、購買記錄和評論記錄,批量處理這些數據,商鋪可以針對用戶的熱度對商品進行重新排布,app可以根據每個用戶的喜好為其進行個性化推送,生產公司可以用處理結果對每個不同地區的市場方針進行部署。
(4)網絡安全:在金融服務和情報機構中,可以通過對批量數據的處理來檢測客戶交易等操作是否存在異常,由此對潛在的欺詐行為進行預防預警。
代表性的處理系統:
2003年Google發布了GFS(Google File System),2004年發布MapReduce編程模型,掀起了大數據開發的高潮,在學術界和產業界產生了強烈反饋。作為MapReduce及GFS的開源版本,Nutch項目Hadoop在2006年發布了HDFS和MapReduce,MapReduce成為大數據標準的數據處理模型。HDFS是分布式文件系統,負責數據存儲,MapReduce是大數據編程模型,負責批量大數據運算。Hadoop已經形成了生態圈,其子項目有Hive,HBase,Pig等。如圖1所示。
2.2 流式數據處理系統
流式數據還有以下幾點共同特性:
(1)流式數據的每個單元都帶有標志時間的標簽和相關屬性,所以處理流式數據通常是按照時間順序來進行的。
(2)流式數據可以由無結構、半結構、結構化數據組成,故其處理流程復雜、數據純度不高。
(3)流式數據具有活動性。
典型應用:
(1)金融銀行業:金融銀行行業的運營數據,具有短時效性,數據結構也混雜,對這些流式數據進行處理,可以幫助銀行發現其內在特征,幫助銀行做出實時決策。
(2)數據采集:隨著物聯網的興起,NBIoT的廣泛應用,終端設備產生海量實時數據。當前主要有傳感器數據采集、日志采集、Web操作日志采集,使用流式系統獲取實時數據信息,達到動態預警及通知功能。
2.3 代表性的處理系統
2.3.1 Storm系統
Storm誕生于BackType公司,隨著BackType被Twitter收購,Storm轉為開源并在GitHub上公布。在2014年9月正式成為Apache旗下的頂級項目。
Storm是實時的Hadoop,在實時數據處理領域扮演Hadoop之與批量數據處理領域的角色。Storm解決了Hadoop在處理實時數據面臨的瓶頸,采用分而治之理念的Hadoop在處理實時性要求高的場景顯得老態龍鐘。如圖2所示。
Storm采用Master/Slave體系結構,與Hadoop主從架構一樣,Nimbus是整個集群的控制節點,負責指令的分發和系統的監控。Supervisor是從節點,負責具體任務執行。
2.3.2 Samza系統
Linkedin開源了消息隊列Kafka,得到業界廣泛應用,相當部分流式數據處理系統都使用KafKa作為分布式消息處理模塊。Linkedin于2013年基于YARN和Kafka開發了一套流式處理框架—Samza。endprint
Kafka(數據層)、YARN(執行層)、Samza API(處理層)構成了Samza系統的整體架構。如圖3所示。
Samza的主要特點是依賴YARN和Kafka。
3 對大數據領域的思考及總結
開源大數據解決方案日新月異,各有使用場景,總體來說總結出幾種發展趨勢:
(1)平臺適應多樣華,Hadoop成為大數據平臺事實上的標準,適用于批處理數據分析應用場景。利用內存實現加速的Spark在實時性要求高的場景中有更好的適配性。在大數據平臺家族中,出現了Spark,TEZ,Drill,Storm,Flume,Scribe等新技術,其并不是要取代Hadoop,而是要促進大數據生態環境的完整化發展。
(2)數據處理實時性:在物聯網、大數據蓬勃發展的基礎上,將海量數據(PB級別)處理時間縮短到幾秒級別的實時計算需求越發強烈。
(3)專業化:專業化是提高效率的必經之道,業界多通過定制化的軟硬一體解決方案實現低成本、高并發的解決方案。
參考文獻
[1]周寶曜,劉偉,范承工.大數據戰略·技術·實踐[M].電子工業出版社,2013:127-130.
[2]Greenberg A,Hjalmtysson G,Maltz D A, et al.A clean slate 4D approach to network control and management[J]. ACMSIGCOMM Computer Communication Review,2005,35(05):41-54.
[3]Taigman Y,Yang M,Ranzato M,Wolf L.Deepface: Closing the gap to human-level performance in face verification.In:Proc.Ofthe IEEE CVPR,2014.
[4]Plaisant C,Carr D,Shneiderman B.Image-Browser taxonomy and guidelines for designers.IEEE Software,1995,12(02):21-32.
[5]Feblowitz J.Analytics in oil and gas:The big deal about big data. In:Proc.of the SPE Digital Energy Conf,2013.
[6]Hive.https://hive.apache.org/.
[7]Pig.https://pig.apache.org/.
[8]Hbase.https://hbase.apache.org/.
[9]MongoDB.http://www.mongodb.org.
作者簡介
李潔(1979-),男,河南省桐柏縣人。大學本科學歷。高級工程師,研究領域為通信網絡、信息安全、云計算。
應昌成(1996-),男,上海市人。本科在讀。研究領域為大數據分析、海洋技術。
作者單位
上海科技網絡通信有限公司 上海市 200000
上海大數據試驗場工程技術研究中心 上海市 200000endprint