-
- 流計算
內容
比較早期代表系統有IBM的System S,它是一個完整的計算架構,通過“stream computing”技術,可以對stream形式的數據進行real-time的分析。“最初的系統擁有大約800個微處理器,但IBM稱,根據需求,這個數字也有可能上萬。研究者講到,其中最關鍵的部分是System S軟件,它可以將任務分開,比如分為圖像識別和文本識別,然后將處理后的結果碎片組成完整的答案。IBM實驗室高性能流運算項目的負責人Nagui Halim談到:System S是一個全新的運算模式,它的靈活性和速度頗具優勢。而與傳統系統相比,它的方式更加智能化,可以適當轉變,以適用其需要解決的問題。
商用搜索引擎,像Google、Bing和Yahoo!等,通常在用戶查詢響應中提供結構化的Web結果,同時也插入基于流量的點擊付費模式的文本廣告。為了在頁面上最佳位置展現最相關的廣告,通過一些算法來動態估算給定上下文中一個廣告被點擊的可能性。上下文可能包括用戶偏好、地理位置、歷史查詢、歷史點擊等信息。一個主搜索引擎可能每秒鐘處理成千上萬次查詢,每個頁面都可能會包含多個廣告。為了及時處理用戶反饋,需要一個低延遲、可擴展、高可靠的處理引擎。然而,對于這些實時性要求很高的應用,盡管MapReduce作了實時性改進,但仍很難穩定地滿足應用需求。因為Hadoop為批處理作了高度優化,MapReduce系統典型地通過調度批量任務來操作靜態數據;而流式計算的典型范式之一是不確定數據速率的事件流流入系統,系統處理能力必須與事件流量匹配,或者通過近似算法等方法優雅降級,通常稱為負載分流(load-shedding)。當然,除了負載分流,流式計算的容錯處理等機制也和批處理計算不盡相同。
有人會說,MR也有自己的實時計算方案,比如說HOP。
但是,這類基于MapReduce進行流式處理的方案有三個主要缺點。
綜上所述,流式處理的模式決定了要和批處理使用非常不同的架構,試圖搭建一個既適合流式計算又適合批處理計算的通用平臺,結果可能會是一個高度復雜的系統,并且最終系統可能對兩種計算都不理想。
目前流式計算是業界研究的一個熱點,最近Twitter、LinkedIn等公司相繼開源了流式計算系統Storm、Kafka等,加上Yahoo!之前開源的S4,流式計算研究在互聯網領域持續升溫。不過流式計算并非最近幾年才開始研究,傳統行業像金融領域等很早就已經在使用流式計算系統,比較知名的有StreamBase、Borealis等。
應用
流運算在內容方面,主要面向以下幾種應用:對金融與科學計算當中的數據進行更快運算和分析的需求;對存在于社交網站、博客、電子郵件、視頻、新聞、電話記錄、傳輸數據、電子感應器之中的數字格式的信息流進行快速處理并反饋的需求。
內容來自百科網