在Hadoop集群上部署Spark處理引擎,每天處理14TB的交易數據,這就是在線廣告平臺Altitude Digital最近的實踐,它主要追蹤用戶的社交媒體數據。
AltitudeDigital首席技術官MannyPuentes透露,Spark部署會在今年四月中旬上線,公司為了成功在Hadoop系統中應用Spark Streaming模型,特地將計算節點從30擴展到50。
目前,Altitude Digital使用的是Hive數據倉庫軟件,這是Apache另一個開源技術,用于查詢存儲在集群中的數據,基于MapR Hadoop發行版。Puentes表示:“Hive是長時間運行的報表,一旦崩潰,要返回TB級別數據就得花費幾個小時的時間。”在測試中,Spark Streaming查詢速度是Hive的4到20倍,處理的數據集的規模和復雜度會對查詢速度產生影響。
查詢速度的提高對公司來講意義重大,因為公司的分析應用程序,比如通過視頻廣告瀏覽數據優化廣告位置,經常需要運行查詢、等待結果、根據結果優化查詢,然后再次運行。如果實踐中能獲得測試的性能,分析團隊可能在一天之內得到復雜查詢的答案,不需要再花上四五天的時間了。Puentes介紹到:“這對我們的業務來講是很有意義的。”
流數據的多種應用方式
AltitudeDigital正在嘗試集成來自多種不同的數據源的數據流,通過一定的算法,基于瀏覽cookie了解用戶的行為。公司的另一個目標是給線上廣告商更快的儀表盤訪問。Puentes表示:“我們也希望能夠實時反饋數據洞察力給廣告商。”
Spark還只是Altitude Digital應用的技術之一,公司每天通過Spark Streaming處理交易數據的同時,也在使用Concurrent提供的開源Cascading軟件來運行MapReduce批處理任務。Spark也支持批處理,而且生成處理速度是MapReduce的一百倍。但Puentes表示,他還是希望使用MapReduce容錯技術確保任務完成。
Sharethrough是另一個采用了Spark Streaming的在線廣告公司,它用來支持運行在AWS上的基于Cloudera的Hadoop集群。Sharethrough在2013年中期開始使用Databricks公司的Spark云部署,目前通過流處理模塊每天運行500GB的互聯網點擊和廣告可視數據。
Spark系統搭載機器學習應用程序,分析原生廣告的效果。Sharethrough系統集成副總裁Rob Slifka表示,Hadoop集群部署兩年以后,很明顯,批導向的系統不能滿足企業實時分析的需求。廣告商和發行商不得不使用幾小時以前的數據決定在哪里做廣告,這就給廣告優化帶來了挑戰。Slifka表示,因為Sharethrough平臺支持的廣告的本質決定的,這樣做會很復雜。頭條和觸屏文本可以形成不同的組合。
數據流和點擊率
這種頭條-文本的方式更有效。在一次Sharethrough;進行的測試中,內部廣告點擊率從不足1%增長到7%,這在廣告界是很大的進步。之所以采用Spark Streaming就是考慮到它能夠快速識別那版廣告最有效。Slifka表示:“如果你有十種組合,其中五種都不好,你一定想要快速地了解到哪五種不好。”
多虧了數據流技術,公司才能夠用不同的網站用戶測試不同的廣告,然后快速分析結果,識別哪個廣告最有效。Slifka表示:“我們從來不會選擇一個單獨的贏家,通過Spark Streaming,我們會采用一對組合,使其成為最好的廣告。”
Russell Cardullo領導了Spark技術部署,他表示,流處理讓性能檢測更重要,也更有挑戰性。“你需要認識到,這是要7*24小時不間斷運行的。數據無時無刻不在產生,你需要及時掌握數據情況,而不是等發生問題了再去解決。”
他補充道,公司運行Spark Streaming,到目前只遇到一個處理問題,而且該問題不是由軟件本身引發的,而是公司使用的為Spark提供數據的亞馬遜Kinesis和RabbitMQ技術引發的。
Gartner分析師Nick Heudecker和McKnight咨詢公司總裁William McKnight也指出了企業在融合大數據和流處理技術時面臨的其他挑戰。包括構建高可用的技術架構以應對數據處理工作負載,同時能夠滿足公司分析和業務處理的需求,使其能夠利用流數據。Heudecker表示:“如果只加速業務流程的5%,其他95%都沒有變,那就沒有什么意義了。”