轉帖|行業資訊|編輯:郝浩|2016-06-15 10:47:32.000|閱讀 229 次
概述:本文闡述了為什么比起Hadoop之類的知名技術,類似Apache Storm這樣的系統更加有用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
讓我們以經典的筆記本品牌實時情感分析(SENTIMENT ANALYSIS)為例,在進行觀點分析時,處理流程應當如下圖所示:
現在的問題在于:是否能夠通過大數據系統來解決,請使用Hadoop來執行下列處理:
如果我們運行Hive Query、Pig Script或MapReduce的話,由于必須從HDFS(從硬盤讀取)中讀取數據,整個處理過程需要耗費數小時才能進行處理,因此理論上來說是無法實時執行數據處理的(它們遵循靜態數據原則)。
由于Hadoop設計時就是為了執行批處理,而且需要花費數小時才能生成結果,因此針對Hadoop是否能夠執行實時處理的問題,答案是否定的。
總結一下,由于所使用的是基于批處理的方式,Hadoop無法解決實時問題。
有很多需要我們執行實時數據處理的用例,比如:
那么現在我們如何處理這類特殊的問題呢?我們需要使用一些實時的流數據機制(一切都在內存中完成,遵循動態數據原則)。
實時處理的典型流程如下圖:
不過想要使用這種方法,需要先解決下面這些問題:
有一些類似Apache Storm之類的實時數據流機制能夠幫助我們解決這些問題。現在我們試著回答上面的問題,看使用Apache Storm能否得出答案。
數據以元組的形式發送。
Storm是一個分布式平臺,允許用戶將更多節點添加到Storm集群運行環境中,以增加應用的吞吐量。
在Storm中,工作是通過集群中的worker來執行的。如果有一個worker宕掉,Storm就會重啟該worker,而如果worker所在的節點也宕掉,則Storm就會重啟集群中一些其他節點上的worker。
Storm如果該元組在處理時出現故障,Storm會重啟出錯的元組。
可以在任何編程語言中編寫。即使Storm平臺運行在JVM之上,運行在上面的應用也可以用任何編程語言編寫,可以使用標準的I/O來讀寫。
希望本文有助于澄清:利用Apache Storm之類的工具處理大數據問題時,在實時流數據中的使用問題。
本文譯者Vera,原文:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn